Mercurial > p > roundup > code
comparison test/test_admin.py @ 7252:9c067ed4568b
add pragma command to roundup-admin
Added basic pragma command. Can assign settings, list settings.
Most settings are not yet implemented.
Only the pragma command respects unhidden pragma settings at this
point. Also added tests, doc updates for roundup-admin.
CHANGES.txt not updated because currently only pragma references the
unhidden settings.
Also fixed a couple of long lines.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Wed, 12 Apr 2023 20:49:21 -0400 |
| parents | 1a3d4703c7d6 |
| children | af870e295b46 |
comparison
equal
deleted
inserted
replaced
| 7251:ab0ea9f03866 | 7252:9c067ed4568b |
|---|---|
| 801 out = out.getvalue().strip() | 801 out = out.getvalue().strip() |
| 802 print("me: " + out) | 802 print("me: " + out) |
| 803 print(err.getvalue().strip()) | 803 print(err.getvalue().strip()) |
| 804 self.assertEqual(out, "issue1:issue2") | 804 self.assertEqual(out, "issue1:issue2") |
| 805 | 805 |
| 806 def testPragma(self): | |
| 807 """Uses interactive mode since pragmas only apply when using multiple | |
| 808 commands. | |
| 809 """ | |
| 810 if self.backend not in ['anydbm']: | |
| 811 self.skipTest("For speed only run test with anydbm.") | |
| 812 | |
| 813 orig_input = AdminTool.my_input | |
| 814 | |
| 815 for i in ["oN", "1", "yeS", "True"]: | |
| 816 inputs = iter(["pragma verbose=%s" % i, "pragma list", "quit"]) | |
| 817 AdminTool.my_input = lambda _self, _prompt: next(inputs) | |
| 818 | |
| 819 self.install_init() | |
| 820 self.admin=AdminTool() | |
| 821 sys.argv=['main', '-i', self.dirname] | |
| 822 | |
| 823 with captured_output() as (out, err): | |
| 824 ret = self.admin.main() | |
| 825 | |
| 826 out = out.getvalue().strip().split('\n') | |
| 827 | |
| 828 print(ret) | |
| 829 self.assertTrue(ret == 0) | |
| 830 expected = ' verbose=True' | |
| 831 self.assertIn(expected, out) | |
| 832 self.assertIn('descriptions...', out[-1]) | |
| 833 | |
| 834 # ----- | |
| 835 for i in ["oFf", "0", "NO", "FalSe"]: | |
| 836 inputs = iter(["pragma verbose=true", "pragma verbose=%s" % i, | |
| 837 "pragma list", "quit"]) | |
| 838 AdminTool.my_input = lambda _self, _prompt: next(inputs) | |
| 839 | |
| 840 self.install_init() | |
| 841 self.admin=AdminTool() | |
| 842 sys.argv=['main', '-i', self.dirname] | |
| 843 | |
| 844 with captured_output() as (out, err): | |
| 845 ret = self.admin.main() | |
| 846 | |
| 847 out = out.getvalue().strip().split('\n') | |
| 848 | |
| 849 print(ret) | |
| 850 self.assertTrue(ret == 0) | |
| 851 expected = ' verbose=False' | |
| 852 self.assertIn(expected, out) | |
| 853 | |
| 854 # ----- test syntax errors | |
| 855 inputs = iter(["pragma", "pragma arg", | |
| 856 "pragma foo=3","quit"]) | |
| 857 AdminTool.my_input = lambda _self, _prompt: next(inputs) | |
| 858 | |
| 859 self.install_init() | |
| 860 self.admin=AdminTool() | |
| 861 sys.argv=['main', '-i', self.dirname] | |
| 862 | |
| 863 with captured_output() as (out, err): | |
| 864 ret = self.admin.main() | |
| 865 | |
| 866 out = out.getvalue().strip().split('\n') | |
| 867 | |
| 868 print(ret) | |
| 869 self.assertTrue(ret == 0) | |
| 870 expected = 'Error: Not enough arguments supplied' | |
| 871 self.assertIn(expected, out) | |
| 872 expected = 'Error: Argument must be setting=value, was given: arg.' | |
| 873 self.assertIn(expected, out) | |
| 874 expected = 'Error: Unknown setting foo.' | |
| 875 self.assertIn(expected, out) | |
| 876 | |
| 877 # ----- | |
| 878 inputs = iter(["pragma verbose=foo", "quit"]) | |
| 879 AdminTool.my_input = lambda _self, _prompt: next(inputs) | |
| 880 | |
| 881 self.install_init() | |
| 882 self.admin=AdminTool() | |
| 883 sys.argv=['main', '-i', self.dirname] | |
| 884 | |
| 885 with captured_output() as (out, err): | |
| 886 ret = self.admin.main() | |
| 887 | |
| 888 out = out.getvalue().strip().split('\n') | |
| 889 | |
| 890 print(ret) | |
| 891 self.assertTrue(ret == 0) | |
| 892 expected = 'Error: Incorrect value for boolean setting verbose: foo.' | |
| 893 self.assertIn(expected, out) | |
| 894 | |
| 895 # ----- | |
| 896 inputs = iter(["pragma verbose=on", "pragma _inttest=5", | |
| 897 "pragma list", "quit"]) | |
| 898 AdminTool.my_input = lambda _self, _prompt: next(inputs) | |
| 899 | |
| 900 self.install_init() | |
| 901 self.admin=AdminTool() | |
| 902 sys.argv=['main', '-i', self.dirname] | |
| 903 | |
| 904 with captured_output() as (out, err): | |
| 905 ret = self.admin.main() | |
| 906 | |
| 907 out = out.getvalue().strip().split('\n') | |
| 908 | |
| 909 print(ret) | |
| 910 self.assertTrue(ret == 0) | |
| 911 expected = ' _inttest=5' | |
| 912 self.assertIn(expected, out) | |
| 913 self.assertIn('descriptions...', out[-1]) | |
| 914 | |
| 915 | |
| 916 # ----- | |
| 917 inputs = iter(["pragma verbose=on", "pragma _inttest=fred", | |
| 918 "pragma list", "quit"]) | |
| 919 AdminTool.my_input = lambda _self, _prompt: next(inputs) | |
| 920 | |
| 921 self.install_init() | |
| 922 self.admin=AdminTool() | |
| 923 sys.argv=['main', '-i', self.dirname] | |
| 924 | |
| 925 with captured_output() as (out, err): | |
| 926 ret = self.admin.main() | |
| 927 | |
| 928 out = out.getvalue().strip().split('\n') | |
| 929 | |
| 930 print(ret) | |
| 931 self.assertTrue(ret == 0) | |
| 932 expected = 'Error: Incorrect value for integer setting _inttest: fred.' | |
| 933 self.assertIn(expected, out) | |
| 934 self.assertIn('descriptions...', out[-1]) | |
| 935 | |
| 936 # ----- | |
| 937 inputs = iter(["pragma indexer_backend=whoosh", "pragma list", | |
| 938 "quit"]) | |
| 939 AdminTool.my_input = lambda _self, _prompt: next(inputs) | |
| 940 | |
| 941 self.install_init() | |
| 942 self.admin=AdminTool() | |
| 943 sys.argv=['main', '-i', self.dirname] | |
| 944 | |
| 945 with captured_output() as (out, err): | |
| 946 ret = self.admin.main() | |
| 947 | |
| 948 out = out.getvalue().strip().split('\n') | |
| 949 | |
| 950 print(ret) | |
| 951 expected = ' indexer_backend=whoosh' | |
| 952 self.assertIn(expected, out) | |
| 953 | |
| 954 # ----- | |
| 955 inputs = iter(["pragma _floattest=4.5", "quit"]) | |
| 956 AdminTool.my_input = lambda _self, _prompt: next(inputs) | |
| 957 | |
| 958 self.install_init() | |
| 959 self.admin=AdminTool() | |
| 960 sys.argv=['main', '-i', self.dirname] | |
| 961 | |
| 962 with captured_output() as (out, err): | |
| 963 ret = self.admin.main() | |
| 964 | |
| 965 out = out.getvalue().strip().split('\n') | |
| 966 | |
| 967 print(ret) | |
| 968 expected = 'Error: Internal error: pragma can not handle values of type: float' | |
| 969 self.assertIn(expected, out) | |
| 970 | |
| 971 # ----- | |
| 972 AdminTool.my_input = orig_input | |
| 806 | 973 |
| 807 def disabletestHelpInitopts(self): | 974 def disabletestHelpInitopts(self): |
| 808 | 975 |
| 809 ''' Note the tests will fail if you run this under pdb. | 976 ''' Note the tests will fail if you run this under pdb. |
| 810 the context managers capture the pdb prompts and this screws | 977 the context managers capture the pdb prompts and this screws |
