Modified: bloodhound/vendor/trac/current/trac/admin/tests/console.py URL: http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/admin/tests/console.py?rev=1639602&r1=1639601&r2=1639602&view=diff ============================================================================== --- bloodhound/vendor/trac/current/trac/admin/tests/console.py (original) +++ bloodhound/vendor/trac/current/trac/admin/tests/console.py Fri Nov 14 11:06:23 2014 @@ -14,6 +14,7 @@ # Author: Tim Moloney <t.molo...@verizon.net> import difflib +import inspect import os import re import sys @@ -42,9 +43,10 @@ import trac.search.web_ui import trac.timeline.web_ui import trac.wiki.web_ui -from trac.admin import console -from trac.admin.api import AdminCommandManager, console_date_format, \ - get_console_locale +from trac.admin.api import AdminCommandManager, IAdminCommandProvider, \ + console_date_format, get_console_locale +from trac.admin.console import TracAdmin, TracAdminHelpMacro +from trac.core import Component, implements from trac.test import EnvironmentStub from trac.util.datefmt import format_date, get_date_format_hint, \ get_datetime_format_hint @@ -75,20 +77,50 @@ def load_expected_results(file, pattern) return expected +def execute_cmd(tracadmin, cmd, strip_trailing_space=True, input=None): + _in = sys.stdin + _err = sys.stderr + _out = sys.stdout + try: + if input: + sys.stdin = StringIO(input.encode('utf-8')) + sys.stdin.encoding = 'utf-8' # fake input encoding + sys.stderr = sys.stdout = out = StringIO() + out.encoding = 'utf-8' # fake output encoding + retval = None + try: + retval = tracadmin.onecmd(cmd) + except SystemExit: + pass + value = out.getvalue() + if isinstance(value, str): # reverse what print_listing did + value = value.decode('utf-8') + if strip_trailing_space: + return retval, STRIP_TRAILING_SPACE.sub('', value) + else: + return retval, value + finally: + sys.stdin = _in + sys.stderr = _err + sys.stdout = _out + + class TracadminTestCase(unittest.TestCase): """ Tests the output of trac-admin and is meant to be used with .../trac/tests.py. """ - expected_results = load_expected_results( - os.path.join(os.path.split(__file__)[0], 'console-tests.txt'), - '===== (test_[^ ]+) =====') + expected_results_file = os.path.join(os.path.dirname(__file__), + 'console-tests.txt') + + expected_results = load_expected_results(expected_results_file, + '===== (test_[^ ]+) =====') def setUp(self): self.env = EnvironmentStub(default_data=True, enable=('trac.*',), disable=('trac.tests.*',)) - self._admin = console.TracAdmin() + self._admin = TracAdmin() self._admin.env_set('', self.env) # Set test date to 11th Jan 2004 @@ -98,34 +130,9 @@ class TracadminTestCase(unittest.TestCas self.env = None def _execute(self, cmd, strip_trailing_space=True, input=None): - _in = sys.stdin - _err = sys.stderr - _out = sys.stdout - try: - if input: - sys.stdin = StringIO(input.encode('utf-8')) - sys.stdin.encoding = 'utf-8' # fake input encoding - sys.stderr = sys.stdout = out = StringIO() - out.encoding = 'utf-8' # fake output encoding - retval = None - try: - retval = self._admin.onecmd(cmd) - except SystemExit: - pass - value = out.getvalue() - if isinstance(value, str): # reverse what print_listing did - value = value.decode('utf-8') - # DEBUG: uncomment in case of `AssertionError: 0 != 2` in tests - #if retval != 0: - # print>>_err, value - if strip_trailing_space: - return retval, STRIP_TRAILING_SPACE.sub('', value) - else: - return retval, value - finally: - sys.stdin = _in - sys.stderr = _err - sys.stdout = _out + return execute_cmd(self._admin, cmd, + strip_trailing_space=strip_trailing_space, + input=input) @property def _datetime_format_hint(self): @@ -136,10 +143,19 @@ class TracadminTestCase(unittest.TestCas self.assertEqual(1, len(docs)) return docs[0][2] - def assertEqual(self, expected_results, output): + def assertExpectedResult(self, output, args=None): + test_name = inspect.stack()[1][3] + expected_result = self.expected_results[test_name] + if args is not None: + expected_result %= args + self.assertEqual(expected_result, output) + + def assertEqual(self, expected_results, output, msg=None): + """:deprecated: since 1.0.2, use `assertExpectedResult` instead.""" if not (isinstance(expected_results, basestring) and isinstance(output, basestring)): - return unittest.TestCase.assertEqual(self, expected_results, output) + return unittest.TestCase.assertEqual(self, expected_results, + output, msg) def diff(): # Create a useful delta between the output and the expected output output_lines = ['%s\n' % x for x in output.split('\n')] @@ -166,13 +182,14 @@ class TracadminTestCase(unittest.TestCas """ from trac import __version__ - test_name = sys._getframe().f_code.co_name - d = {'version': __version__, - 'date_format_hint': get_date_format_hint()} - expected_results = self.expected_results[test_name] % d rv, output = self._execute('help') - self.assertEqual(0, rv) - self.assertEqual(expected_results, output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output, { + 'version': __version__, + 'date_format_hint': get_date_format_hint() + }) + self.assertTrue(all(len(line) < 80 for line in output.split('\n')), + "Lines should be less than 80 characters in length.") # Locale test @@ -240,19 +257,17 @@ class TracadminTestCase(unittest.TestCas # commands. This requires being able to control the current # time, which in turn would require centralizing the time # provider, for example in the environment object. - test_name = sys._getframe().f_code.co_name rv, output = self._execute('attachment list wiki:WikiStart') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_attachment_add_nonexistent_resource(self): """Tests the 'attachment add' command in trac-admin, on a non-existent resource.""" - test_name = sys._getframe().f_code.co_name rv, output = self._execute('attachment add wiki:NonExistentPage %s' % __file__) - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) # Config tests @@ -261,21 +276,19 @@ class TracadminTestCase(unittest.TestCas Tests the 'config get' command in trac-admin. This particular test gets the project name from the config. """ - test_name = sys._getframe().f_code.co_name self.env.config.set('project', 'name', 'Test project') rv, output = self._execute('config get project name') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_config_set(self): """ Tests the 'config set' command in trac-admin. This particular test sets the project name using an option value containing a space. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('config set project name "Test project"') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) self.assertEqual('Test project', self.env.config.get('project', 'name')) @@ -285,11 +298,10 @@ class TracadminTestCase(unittest.TestCas test removes the project name from the config, therefore reverting the option to the default value. """ - test_name = sys._getframe().f_code.co_name self.env.config.set('project', 'name', 'Test project') rv, output = self._execute('config remove project name') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) self.assertEqual('My Project', self.env.config.get('project', 'name')) # Permission tests @@ -300,10 +312,9 @@ class TracadminTestCase(unittest.TestCas has no command arguments, it is hard to call it incorrectly. As a result, there is only this one test. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('permission list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_permission_add_one_action_ok(self): """ @@ -311,11 +322,10 @@ class TracadminTestCase(unittest.TestCas test passes valid arguments to add one permission and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('permission add test_user WIKI_VIEW') rv, output = self._execute('permission list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_permission_add_multiple_actions_ok(self): """ @@ -323,11 +333,10 @@ class TracadminTestCase(unittest.TestCas test passes valid arguments to add multiple permissions and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('permission add test_user LOG_VIEW FILE_VIEW') rv, output = self._execute('permission list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_permission_add_already_exists(self): """ @@ -335,13 +344,12 @@ class TracadminTestCase(unittest.TestCas test passes a permission that already exists and checks for the message. Other permissions passed are added. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('permission add anonymous WIKI_CREATE ' 'WIKI_VIEW WIKI_MODIFY') - self.assertEqual(0, rv) + self.assertEqual(0, rv, output) rv, output2 = self._execute('permission list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output + output2) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output + output2) def test_permission_remove_one_action_ok(self): """ @@ -349,11 +357,10 @@ class TracadminTestCase(unittest.TestCas test passes valid arguments to remove one permission and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('permission remove anonymous TICKET_MODIFY') rv, output = self._execute('permission list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_permission_remove_multiple_actions_ok(self): """ @@ -361,44 +368,40 @@ class TracadminTestCase(unittest.TestCas test passes valid arguments to remove multiple permission and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('permission remove anonymous WIKI_CREATE WIKI_MODIFY') rv, output = self._execute('permission list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_permission_remove_all_actions_for_user(self): """ Tests the 'permission remove' command in trac-admin. This particular test removes all permissions for anonymous. """ - test_name = sys._getframe().f_code.co_name self._execute('permission remove anonymous *') rv, output = self._execute('permission list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_permission_remove_action_for_all_users(self): """ Tests the 'permission remove' command in trac-admin. This particular test removes the TICKET_CREATE permission from all users. """ - test_name = sys._getframe().f_code.co_name self._execute('permission add anonymous TICKET_CREATE') self._execute('permission remove * TICKET_CREATE') rv, output = self._execute('permission list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_permission_remove_unknown_user(self): """ Tests the 'permission remove' command in trac-admin. This particular test tries removing a permission from an unknown user. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('permission remove joe TICKET_VIEW') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_permission_remove_action_not_granted(self): """ @@ -406,49 +409,45 @@ class TracadminTestCase(unittest.TestCas test tries removing TICKET_CREATE from user anonymous, who doesn't have that permission. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('permission remove anonymous TICKET_CREATE') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_permission_remove_action_granted_through_meta_permission(self): """ Tests the 'permission remove' command in trac-admin. This particular test tries removing WIKI_VIEW from a user. WIKI_VIEW has been granted through user anonymous.""" - test_name = sys._getframe().f_code.co_name self._execute('permission add joe TICKET_VIEW') rv, output = self._execute('permission remove joe WIKI_VIEW') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_permission_export_ok(self): """ Tests the 'permission export' command in trac-admin. This particular test exports the default permissions to stdout. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('permission export') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_permission_import_ok(self): """ Tests the 'permission import' command in trac-admin. This particular test exports additional permissions, removes them and imports them back. """ - test_name = sys._getframe().f_code.co_name user = u'test_user\u0250' self._execute('permission add ' + user + ' WIKI_VIEW') self._execute('permission add ' + user + ' TICKET_VIEW') rv, output = self._execute('permission export') self._execute('permission remove ' + user + ' *') rv, output = self._execute('permission import', input=output) - self.assertEqual(0, rv) + self.assertEqual(0, rv, output) self.assertEqual('', output) rv, output = self._execute('permission list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) # Component tests @@ -458,21 +457,19 @@ class TracadminTestCase(unittest.TestCas has no command arguments, it is hard to call it incorrectly. As a result, there is only this one test. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('component list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_component_add_ok(self): """ Tests the 'component add' command in trac-admin. This particular test passes valid arguments and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('component add new_component') rv, output = self._execute('component list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_component_add_optional_owner_ok(self): """ @@ -480,11 +477,10 @@ class TracadminTestCase(unittest.TestCas 'owner' argument. This particular test passes valid arguments and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('component add new_component new_user') rv, output = self._execute('component list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_component_add_error_already_exists(self): """ @@ -492,52 +488,47 @@ class TracadminTestCase(unittest.TestCas test passes a component name that already exists and checks for an error message. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('component add component1 new_user') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_component_rename_ok(self): """ Tests the 'component rename' command in trac-admin. This particular test passes valid arguments and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('component rename component1 changed_name') rv, output = self._execute('component list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_component_rename_error_bad_component(self): """ Tests the 'component rename' command in trac-admin. This particular test tries to rename a component that does not exist. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('component rename bad_component changed_name') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_component_rename_error_bad_new_name(self): """ Tests the 'component rename' command in trac-admin. This particular test tries to rename a component to a name that already exists. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('component rename component1 component2') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_component_chown_ok(self): """ Tests the 'component chown' command in trac-admin. This particular test passes valid arguments and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('component chown component2 changed_owner') rv, output = self._execute('component list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_component_chown_error_bad_component(self): """ @@ -545,34 +536,28 @@ class TracadminTestCase(unittest.TestCas test tries to change the owner of a component that does not exist. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('component chown bad_component changed_owner') - self.assertEqual(2, rv) - # We currently trigger a deprecation warning with py26 so we - # can currently only verify that the end of the output string is - # correct - self.assertEqual(output.endswith(self.expected_results[test_name]), True) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_component_remove_ok(self): """ Tests the 'component remove' command in trac-admin. This particular test passes a valid argument and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('component remove component1') rv, output = self._execute('component list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_component_remove_error_bad_component(self): """ Tests the 'component remove' command in trac-admin. This particular test tries to remove a component that does not exist. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('component remove bad_component') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) # Ticket-type tests @@ -582,21 +567,19 @@ class TracadminTestCase(unittest.TestCas has no command arguments, it is hard to call it incorrectly. As a result, there is only this one test. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('ticket_type list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_ticket_type_add_ok(self): """ Tests the 'ticket_type add' command in trac-admin. This particular test passes a valid argument and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('ticket_type add new_type') rv, output = self._execute('ticket_type list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_ticket_type_add_error_already_exists(self): """ @@ -604,94 +587,85 @@ class TracadminTestCase(unittest.TestCas test passes a ticket type that already exists and checks for an error message. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('ticket_type add defect') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_ticket_type_change_ok(self): """ Tests the 'ticket_type change' command in trac-admin. This particular test passes valid arguments and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('ticket_type change defect bug') rv, output = self._execute('ticket_type list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_ticket_type_change_error_bad_type(self): """ Tests the 'ticket_type change' command in trac-admin. This particular test tries to change a priority that does not exist. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('ticket_type change bad_type changed_type') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_ticket_type_change_error_bad_new_name(self): """ Tests the 'ticket_type change' command in trac-admin. This particular test tries to change a ticket type to another type that already exists. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('ticket_type change defect task') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_ticket_type_remove_ok(self): """ Tests the 'ticket_type remove' command in trac-admin. This particular test passes a valid argument and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('ticket_type remove task') rv, output = self._execute('ticket_type list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_ticket_type_remove_error_bad_type(self): """ Tests the 'ticket_type remove' command in trac-admin. This particular test tries to remove a ticket type that does not exist. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('ticket_type remove bad_type') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_ticket_type_order_down_ok(self): """ Tests the 'ticket_type order' command in trac-admin. This particular test passes a valid argument and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('ticket_type order defect down') rv, output = self._execute('ticket_type list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_ticket_type_order_up_ok(self): """ Tests the 'ticket_type order' command in trac-admin. This particular test passes a valid argument and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('ticket_type order enhancement up') rv, output = self._execute('ticket_type list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_ticket_type_order_error_bad_type(self): """ Tests the 'priority order' command in trac-admin. This particular test tries to reorder a priority that does not exist. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('ticket_type order bad_type up') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) # Priority tests @@ -701,33 +675,30 @@ class TracadminTestCase(unittest.TestCas has no command arguments, it is hard to call it incorrectly. As a result, there is only this one test. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('priority list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_priority_add_ok(self): """ Tests the 'priority add' command in trac-admin. This particular test passes a valid argument and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('priority add new_priority') rv, output = self._execute('priority list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_priority_add_many_ok(self): """ Tests adding more than 10 priority values. This makes sure that ordering is preserved when adding more than 10 values. """ - test_name = sys._getframe().f_code.co_name for i in xrange(11): self._execute('priority add p%s' % i) rv, output = self._execute('priority list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_priority_add_error_already_exists(self): """ @@ -735,94 +706,85 @@ class TracadminTestCase(unittest.TestCas test passes a priority name that already exists and checks for an error message. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('priority add blocker') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_priority_change_ok(self): """ Tests the 'priority change' command in trac-admin. This particular test passes valid arguments and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('priority change major normal') rv, output = self._execute('priority list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_priority_change_error_bad_priority(self): """ Tests the 'priority change' command in trac-admin. This particular test tries to change a priority that does not exist. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('priority change bad_priority changed_name') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_priority_change_error_bad_new_name(self): """ Tests the 'priority change' command in trac-admin. This particular test tries to change a priority to a name that already exists. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('priority change major minor') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_priority_remove_ok(self): """ Tests the 'priority remove' command in trac-admin. This particular test passes a valid argument and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('priority remove major') rv, output = self._execute('priority list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_priority_remove_error_bad_priority(self): """ Tests the 'priority remove' command in trac-admin. This particular test tries to remove a priority that does not exist. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('priority remove bad_priority') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_priority_order_down_ok(self): """ Tests the 'priority order' command in trac-admin. This particular test passes a valid argument and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('priority order blocker down') rv, output = self._execute('priority list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_priority_order_up_ok(self): """ Tests the 'priority order' command in trac-admin. This particular test passes a valid argument and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('priority order critical up') rv, output = self._execute('priority list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_priority_order_error_bad_priority(self): """ Tests the 'priority order' command in trac-admin. This particular test tries to reorder a priority that does not exist. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('priority remove bad_priority') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) # Severity tests @@ -832,21 +794,19 @@ class TracadminTestCase(unittest.TestCas has no command arguments, it is hard to call it incorrectly. As a result, there is only this one test. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('severity list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_severity_add_ok(self): """ Tests the 'severity add' command in trac-admin. This particular test passes a valid argument and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('severity add new_severity') rv, output = self._execute('severity list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_severity_add_error_already_exists(self): """ @@ -854,102 +814,93 @@ class TracadminTestCase(unittest.TestCas test passes a severity name that already exists and checks for an error message. """ - test_name = sys._getframe().f_code.co_name self._execute('severity add blocker') rv, output = self._execute('severity add blocker') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_severity_change_ok(self): """ Tests the 'severity add' command in trac-admin. This particular test passes valid arguments and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('severity add critical') self._execute('severity change critical "end-of-the-world"') rv, output = self._execute('severity list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_severity_change_error_bad_severity(self): """ Tests the 'severity change' command in trac-admin. This particular test tries to change a severity that does not exist. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('severity change bad_severity changed_name') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_severity_change_error_bad_new_name(self): """ Tests the 'severity change' command in trac-admin. This particular test tries to change a severity to a name that already exists. """ - test_name = sys._getframe().f_code.co_name self._execute('severity add major') self._execute('severity add critical') rv, output = self._execute('severity change critical major') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_severity_remove_ok(self): """ Tests the 'severity add' command in trac-admin. This particular test passes a valid argument and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('severity remove trivial') rv, output = self._execute('severity list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_severity_remove_error_bad_severity(self): """ Tests the 'severity remove' command in trac-admin. This particular test tries to remove a severity that does not exist. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('severity remove bad_severity') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_severity_order_down_ok(self): """ Tests the 'severity order' command in trac-admin. This particular test passes a valid argument and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('severity add foo') self._execute('severity add bar') self._execute('severity order foo down') rv, output = self._execute('severity list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_severity_order_up_ok(self): """ Tests the 'severity order' command in trac-admin. This particular test passes a valid argument and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('severity add foo') self._execute('severity add bar') self._execute('severity order bar up') rv, output = self._execute('severity list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_severity_order_error_bad_severity(self): """ Tests the 'severity order' command in trac-admin. This particular test tries to reorder a priority that does not exist. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('severity remove bad_severity') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) # Version tests @@ -959,21 +910,19 @@ class TracadminTestCase(unittest.TestCas has no command arguments, it is hard to call it incorrectly. As a result, there is only this one test. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('version list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_version_add_ok(self): """ Tests the 'version add' command in trac-admin. This particular test passes valid arguments and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('version add 9.9 "%s"' % self._test_date) rv, output = self._execute('version list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_version_add_error_already_exists(self): """ @@ -981,86 +930,78 @@ class TracadminTestCase(unittest.TestCas test passes a version name that already exists and checks for an error message. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('version add 1.0 "%s"' % self._test_date) - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_version_rename_ok(self): """ Tests the 'version rename' command in trac-admin. This particular test passes valid arguments and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('version rename 1.0 9.9') rv, output = self._execute('version list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_version_rename_error_bad_version(self): """ Tests the 'version rename' command in trac-admin. This particular test tries to rename a version that does not exist. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('version rename bad_version changed_name') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_version_time_ok(self): """ Tests the 'version time' command in trac-admin. This particular test passes valid arguments and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('version time 2.0 "%s"' % self._test_date) rv, output = self._execute('version list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_version_time_unset_ok(self): """ Tests the 'version time' command in trac-admin. This particular test passes valid arguments for unsetting the date. """ - test_name = sys._getframe().f_code.co_name self._execute('version time 2.0 "%s"' % self._test_date) self._execute('version time 2.0 ""') rv, output = self._execute('version list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_version_time_error_bad_version(self): """ Tests the 'version time' command in trac-admin. This particular test tries to change the time on a version that does not exist. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('version time bad_version "%s"' % self._test_date) - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_version_remove_ok(self): """ Tests the 'version remove' command in trac-admin. This particular test passes a valid argument and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('version remove 1.0') rv, output = self._execute('version list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_version_remove_error_bad_version(self): """ Tests the 'version remove' command in trac-admin. This particular test tries to remove a version that does not exist. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('version remove bad_version') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) # Milestone tests @@ -1070,33 +1011,30 @@ class TracadminTestCase(unittest.TestCas has no command arguments, it is hard to call it incorrectly. As a result, there is only this one test. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('milestone list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_milestone_add_ok(self): """ Tests the 'milestone add' command in trac-admin. This particular test passes valid arguments and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('milestone add new_milestone "%s"' % self._test_date) rv, output = self._execute('milestone list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_milestone_add_utf8_ok(self): """ Tests the 'milestone add' command in trac-admin. This particular test passes valid arguments and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute(u'milestone add \xa9tat_final "%s"' #\xc2\xa9 % self._test_date) rv, output = self._execute('milestone list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_milestone_add_error_already_exists(self): """ @@ -1104,96 +1042,86 @@ class TracadminTestCase(unittest.TestCas test passes a milestone name that already exists and checks for an error message. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('milestone add milestone1 "%s"' % self._test_date) - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_milestone_add_invalid_date(self): - test_name = sys._getframe().f_code.co_name rv, output = self._execute('milestone add new_milestone <add>') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name] % - {'hint': self._datetime_format_hint, - 'isohint': get_datetime_format_hint('iso8601')}, - output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output, { + 'hint': self._datetime_format_hint, + 'isohint': get_datetime_format_hint('iso8601') + }) def test_milestone_rename_ok(self): """ Tests the 'milestone rename' command in trac-admin. This particular test passes valid arguments and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('milestone rename milestone1 changed_milestone') rv, output = self._execute('milestone list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_milestone_rename_error_bad_milestone(self): """ Tests the 'milestone rename' command in trac-admin. This particular test tries to rename a milestone that does not exist. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('milestone rename bad_milestone changed_name') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_milestone_due_ok(self): """ Tests the 'milestone due' command in trac-admin. This particular test passes valid arguments and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('milestone due milestone2 "%s"' % self._test_date) rv, output = self._execute('milestone list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_milestone_due_unset_ok(self): """ Tests the 'milestone due' command in trac-admin. This particular test passes valid arguments for unsetting the due date. """ - test_name = sys._getframe().f_code.co_name self._execute('milestone due milestone2 "%s"' % self._test_date) self._execute('milestone due milestone2 ""') rv, output = self._execute('milestone list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_milestone_due_error_bad_milestone(self): """ Tests the 'milestone due' command in trac-admin. This particular test tries to change the due date on a milestone that does not exist. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('milestone due bad_milestone "%s"' % self._test_date) - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_milestone_due_invalid_date(self): - test_name = sys._getframe().f_code.co_name rv, output = self._execute('milestone due milestone1 <due>') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name] % - {'hint': self._datetime_format_hint, - 'isohint': get_datetime_format_hint('iso8601')}, - output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output, { + 'hint': self._datetime_format_hint, + 'isohint': get_datetime_format_hint('iso8601') + }) def test_milestone_completed_ok(self): """ Tests the 'milestone completed' command in trac-admin. This particular test passes valid arguments and checks for success. """ - test_name = sys._getframe().f_code.co_name - self._execute('milestone completed milestone2 "%s"' % self._test_date) rv, output = self._execute('milestone list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_milestone_completed_error_bad_milestone(self): """ @@ -1201,230 +1129,201 @@ class TracadminTestCase(unittest.TestCas test tries to change the completed date on a milestone that does not exist. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('milestone completed bad_milestone "%s"' % self._test_date) - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_milestone_completed_invalid_date(self): - test_name = sys._getframe().f_code.co_name rv, output = self._execute('milestone completed milestone1 <com>') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name] % - {'hint': self._datetime_format_hint, - 'isohint': get_datetime_format_hint('iso8601')}, - output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output, { + 'hint': self._datetime_format_hint, + 'isohint': get_datetime_format_hint('iso8601') + }) def test_milestone_remove_ok(self): """ Tests the 'milestone remove' command in trac-admin. This particular test passes a valid argument and checks for success. """ - test_name = sys._getframe().f_code.co_name self._execute('milestone remove milestone3') rv, output = self._execute('milestone list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_milestone_remove_error_bad_milestone(self): """ Tests the 'milestone remove' command in trac-admin. This particular test tries to remove a milestone that does not exist. """ - test_name = sys._getframe().f_code.co_name rv, output = self._execute('milestone remove bad_milestone') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_backslash_use_ok(self): - test_name = sys._getframe().f_code.co_name if self._admin.interactive: self._execute('version add \\') else: self._execute(r"version add '\'") rv, output = self._execute('version list') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_session_list_no_sessions(self): - test_name = sys._getframe().f_code.co_name rv, output = self._execute('session list authenticated') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_session_list_authenticated(self): - test_name = sys._getframe().f_code.co_name _prep_session_table(self.env) rv, output = self._execute('session list authenticated') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_session_list_anonymous(self): - test_name = sys._getframe().f_code.co_name _prep_session_table(self.env) rv, output = self._execute('session list anonymous') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_session_list_all(self): - test_name = sys._getframe().f_code.co_name _prep_session_table(self.env) if self._admin.interactive: rv, output = self._execute("session list *") else: rv, output = self._execute("session list '*'") - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_session_list_authenticated_sid(self): - test_name = sys._getframe().f_code.co_name _prep_session_table(self.env) rv, output = self._execute('session list name00') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_session_list_anonymous_sid(self): - test_name = sys._getframe().f_code.co_name _prep_session_table(self.env) rv, output = self._execute('session list name10:0') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_session_list_missing_sid(self): - test_name = sys._getframe().f_code.co_name _prep_session_table(self.env) rv, output = self._execute('session list thisdoesntexist') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_session_add_missing_sid(self): - test_name = sys._getframe().f_code.co_name rv, output = self._execute('session add') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_session_add_duplicate_sid(self): - test_name = sys._getframe().f_code.co_name _prep_session_table(self.env) rv, output = self._execute('session add name00') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_session_add_sid_all(self): - test_name = sys._getframe().f_code.co_name rv, output = self._execute('session add john John j...@example.org') - self.assertEqual(0, rv) + self.assertEqual(0, rv, output) rv, output = self._execute('session list john') - self.assertEqual(self.expected_results[test_name] - % {'today': format_date(None, console_date_format)}, - output) + self.assertExpectedResult(output, { + 'today': format_date(None, console_date_format) + }) def test_session_add_sid(self): - test_name = sys._getframe().f_code.co_name rv, output = self._execute('session add john') - self.assertEqual(0, rv) + self.assertEqual(0, rv, output) rv, output = self._execute('session list john') - self.assertEqual(self.expected_results[test_name] - % {'today': format_date(None, console_date_format)}, - output) + self.assertExpectedResult(output, { + 'today': format_date(None, console_date_format) + }) def test_session_add_sid_name(self): - test_name = sys._getframe().f_code.co_name rv, output = self._execute('session add john John') - self.assertEqual(0, rv) + self.assertEqual(0, rv, output) rv, output = self._execute('session list john') - self.assertEqual(self.expected_results[test_name] - % {'today': format_date(None, console_date_format)}, - output) + self.assertExpectedResult(output, { + 'today': format_date(None, console_date_format) + }) def test_session_set_attr_name(self): - test_name = sys._getframe().f_code.co_name _prep_session_table(self.env) rv, output = self._execute('session set name name00 JOHN') - self.assertEqual(0, rv) + self.assertEqual(0, rv, output) rv, output = self._execute('session list name00') - self.assertEqual(self.expected_results[test_name], output) + self.assertExpectedResult(output) def test_session_set_attr_email(self): - test_name = sys._getframe().f_code.co_name _prep_session_table(self.env) rv, output = self._execute('session set email name00 j...@example.org') - self.assertEqual(0, rv) + self.assertEqual(0, rv, output) rv, output = self._execute('session list name00') - self.assertEqual(self.expected_results[test_name], output) + self.assertExpectedResult(output) def test_session_set_attr_missing_attr(self): - test_name = sys._getframe().f_code.co_name rv, output = self._execute('session set') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_session_set_attr_missing_value(self): - test_name = sys._getframe().f_code.co_name rv, output = self._execute('session set name john') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_session_set_attr_missing_sid(self): - test_name = sys._getframe().f_code.co_name rv, output = self._execute('session set name') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_session_set_attr_nonexistent_sid(self): - test_name = sys._getframe().f_code.co_name rv, output = self._execute('session set name john foo') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output) def test_session_delete_sid(self): - test_name = sys._getframe().f_code.co_name _prep_session_table(self.env) rv, output = self._execute('session delete name00') - self.assertEqual(0, rv) + self.assertEqual(0, rv, output) rv, output = self._execute('session list nam00') - self.assertEqual(self.expected_results[test_name], output) + self.assertExpectedResult(output) def test_session_delete_missing_params(self): - test_name = sys._getframe().f_code.co_name rv, output = self._execute('session delete') - self.assertEqual(0, rv) - self.assertEqual(self.expected_results[test_name], output) + self.assertEqual(0, rv, output) + self.assertExpectedResult(output) def test_session_delete_anonymous(self): - test_name = sys._getframe().f_code.co_name _prep_session_table(self.env) rv, output = self._execute('session delete anonymous') - self.assertEqual(0, rv) + self.assertEqual(0, rv, output) rv, output = self._execute('session list *') - self.assertEqual(self.expected_results[test_name], output) + self.assertExpectedResult(output) def test_session_delete_multiple_sids(self): - test_name = sys._getframe().f_code.co_name _prep_session_table(self.env) rv, output = self._execute('session delete name00 name01 name02 ' 'name03') - self.assertEqual(0, rv) + self.assertEqual(0, rv, output) rv, output = self._execute('session list *') - self.assertEqual(self.expected_results[test_name], output) + self.assertExpectedResult(output) def test_session_purge_age(self): - test_name = sys._getframe().f_code.co_name _prep_session_table(self.env, spread_visits=True) rv, output = self._execute('session purge 20100112') - self.assertEqual(0, rv) + self.assertEqual(0, rv, output) rv, output = self._execute('session list *') - self.assertEqual(self.expected_results[test_name], output) + self.assertExpectedResult(output) def test_session_purge_invalid_date(self): - test_name = sys._getframe().f_code.co_name rv, output = self._execute('session purge <purge>') - self.assertEqual(2, rv) - self.assertEqual(self.expected_results[test_name] % - {'hint': self._datetime_format_hint, - 'isohint': get_datetime_format_hint('iso8601')}, - output) + self.assertEqual(2, rv, output) + self.assertExpectedResult(output, { + 'hint': self._datetime_format_hint, + 'isohint': get_datetime_format_hint('iso8601') + }) def test_help_milestone_due(self): doc = self._get_command_help('milestone', 'due') @@ -1446,8 +1345,66 @@ class TracadminTestCase(unittest.TestCas self.assertIn(u'"YYYY-MM-DDThh:mm:ss±hh:mm"', doc) +class TracadminNoEnvTestCase(unittest.TestCase): + + def setUp(self): + self._admin = TracAdmin() + + def tearDown(self): + self._admin = None + + def _execute(self, cmd, strip_trailing_space=True, input=None): + return execute_cmd(self._admin, cmd, + strip_trailing_space=strip_trailing_space, + input=input) + + def test_help(self): + rv, output = self._execute('help') + output = output.splitlines() + self.assertEqual('', output[-3]) + self.assertEqual('help Show documentation', output[-2]) + self.assertEqual('initenv Create and initialize a new environment', + output[-1]) + + def test_help_with_nocmd(self): + rv, output = self._execute('help nocmd') + output = output.splitlines() + self.assertEqual(["No documentation found for 'nocmd'. Use 'help' to " + "see the list of commands."], + output) + + +class TracAdminHelpMacroTestCase(unittest.TestCase): + + def setUp(self): + self.env = EnvironmentStub(enable=['%s.UnicodeHelpCommand' % + self.__module__]) + + def tearDown(self): + self.env.reset_db() + + def test_unicode_help(self): + unicode_help = u'Hélp text with unicöde charà cters' + + class UnicodeHelpCommand(Component): + implements(IAdminCommandProvider) + def get_admin_commands(self): + yield ('unicode-help', '', unicode_help, + None, self._cmd) + def _cmd(self): + pass + + macro = TracAdminHelpMacro(self.env) + help = unicode(macro.expand_macro(None, None, 'unicode-help')) + self.assertTrue(unicode_help in help) + + def suite(): - return unittest.makeSuite(TracadminTestCase) + suite = unittest.TestSuite() + suite.addTest(unittest.makeSuite(TracadminTestCase)) + suite.addTest(unittest.makeSuite(TracadminNoEnvTestCase)) + suite.addTest(unittest.makeSuite(TracAdminHelpMacroTestCase)) + return suite if __name__ == '__main__':
Modified: bloodhound/vendor/trac/current/trac/admin/tests/functional.py URL: http://svn.apache.org/viewvc/bloodhound/vendor/trac/current/trac/admin/tests/functional.py?rev=1639602&r1=1639601&r2=1639602&view=diff ============================================================================== --- bloodhound/vendor/trac/current/trac/admin/tests/functional.py (original) +++ bloodhound/vendor/trac/current/trac/admin/tests/functional.py Fri Nov 14 11:06:23 2014 @@ -13,7 +13,7 @@ # history and logs, available at http://trac.edgewall.org/log/. from trac.tests.functional import * -from trac.util.text import unicode_to_base64, unicode_from_base64 +from trac.util.text import unicode_to_base64 class AuthorizationTestCaseSetup(FunctionalTwillTestCaseSetup): @@ -159,6 +159,30 @@ class TestAddUserToGroup(FunctionalTwill somegroup = unicode_to_base64('somegroup') tc.find('%s:%s' % (authenticated, somegroup)) + revoke_checkbox = '%s:%s' % (unicode_to_base64('anonymous'), + unicode_to_base64('PERMISSION_GRANT')) + tc.formvalue('addperm', 'gp_subject', 'anonymous') + tc.formvalue('addperm', 'action', 'PERMISSION_GRANT') + tc.submit() + tc.find(revoke_checkbox) + self._testenv.get_trac_environment().config.touch() + self._tester.logout() + self._tester.go_to_admin("Permissions") + try: + tc.formvalue('addsubj', 'sg_subject', 'someuser') + tc.formvalue('addsubj', 'sg_group', 'authenticated') + tc.submit() + tc.find("The subject someuser was not added to the " + "group authenticated because the group has " + "TICKET_CHGPROP permission and users cannot " + "grant permissions they don't possess.") + finally: + self._tester.login('admin') + self._tester.go_to_admin("Permissions") + tc.formvalue('revokeform', 'sel', revoke_checkbox) + tc.submit() + tc.notfind(revoke_checkbox) + class TestRemoveUserFromGroup(FunctionalTwillTestCaseSetup): def runTest(self): @@ -209,14 +233,17 @@ class RegressionTestTicket10752(Function are no longer defined. """ env = self._testenv.get_trac_environment() - env.db_transaction("INSERT INTO permission VALUES (%s,%s)", - ('anonymous', 'MISSING_PERMISSION')) + try: + env.db_transaction("INSERT INTO permission VALUES (%s,%s)", + ('anonymous', 'NOTDEFINED_PERMISSION')) + except env.db_exc.IntegrityError: + pass env.config.touch() self._tester.go_to_admin("Permissions") tc.find('<span class="missing" ' - 'title="MISSING_PERMISSION is no longer defined">' - 'MISSING_PERMISSION</span>') + 'title="NOTDEFINED_PERMISSION is no longer defined">' + 'NOTDEFINED_PERMISSION</span>') class RegressionTestTicket11069(FunctionalTwillTestCaseSetup):