id,summary,reporter,owner,description,type,status,priority,component,severity,resolution,keywords,cc,release
10677,KeyError: ('add_domain'_ '_'_ 'N_'_ 'tag_'),rjollos,hasienda,When running the unit tests again r8130 of the trunk (which fail for other reasons such as Trac database compatibility)_ I see the following traceback:\r\n\r\n{{{\r\nTraceback (most recent call last):\r\n  File "setup.py"_ line 87_ in <module>\r\n    **extra\r\n  File "/usr/lib/python2.7/distutils/core.py"_ line 152_ in setup\r\n    dist.run_commands()\r\n  File "/usr/lib/python2.7/distutils/dist.py"_ line 953_ in run_commands\r\n    self.run_command(cmd)\r\n  File "/usr/lib/python2.7/distutils/dist.py"_ line 972_ in run_command\r\n    cmd_obj.run()\r\n  File "/home/user/Workspace/th9110-r8130/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/command/test.py"_ line 137_ in run\r\n    self.with_project_on_sys_path(self.run_tests)\r\n  File "/home/user/Workspace/th9110-r8130/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/command/test.py"_ line 117_ in with_project_on_sys_path\r\n    func()\r\n  File "/home/user/Workspace/th9110-r8130/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/setuptools/command/test.py"_ line 146_ in run_tests\r\n    testLoader = loader_class()\r\n  File "/usr/lib/python2.7/unittest/main.py"_ line 94_ in __init__\r\n    self.parseArgs(argv)\r\n  File "/usr/lib/python2.7/unittest/main.py"_ line 149_ in parseArgs\r\n    self.createTests()\r\n  File "/usr/lib/python2.7/unittest/main.py"_ line 158_ in createTests\r\n    self.module)\r\n  File "/usr/lib/python2.7/unittest/loader.py"_ line 128_ in loadTestsFromNames\r\n    suites = [self.loadTestsFromName(name_ module) for name in names]\r\n  File "/usr/lib/python2.7/unittest/loader.py"_ line 91_ in loadTestsFromName\r\n    module = __import__('.'.join(parts_copy))\r\n  File "/home/user/Workspace/announcerplugin.git/announcer/tests/__init__.py"_ line 24_ in <module>\r\n    from announcer.tests import (\r\n  File "/home/user/Workspace/announcerplugin.git/announcer/tests/api.py"_ line 20_ in <module>\r\n    from announcer.api import AnnouncementSystem_ AnnouncementEvent\r\n  File "/home/user/Workspace/announcerplugin.git/announcer/api.py"_ line 351_ in <module>\r\n    domain_functions('announcer'_ ('add_domain'_ '_'_ 'N_'_ 'tag_'))\r\n  File "/home/user/Workspace/th9110-r8130/trac-trunk-r8130/trac/util/translation.py"_ line 91_ in domain_functions\r\n    return [_functions[s] for s in symbols]\r\nKeyError: ('add_domain'_ '_'_ 'N_'_ 'tag_')\r\n}}}\r\n\r\nThe fix appears to be:\r\n{{{\r\n#!patch\r\ndiff --git a/announcer/api.py b/announcer/api.py\r\nindex 69d315b..3c4b1e0 100644\r\n--- a/announcer/api.py\r\n+++ b/announcer/api.py\r\n@@ -348_7 +348_7 @@ def istrue(value_ otherwise=False):\r\n try:\r\n     from trac.util.translation import domain_functions\r\n     add_domain_ __ N_ _ tag_= \\\r\n-        domain_functions('announcer'_ ('add_domain'_ '_'_ 'N_'_ 'tag_'))\r\n+        domain_functions('announcer'_ 'add_domain'_ '_'_ 'N_'_ 'tag_')\r\n except ImportError:\r\n     from  genshi.builder         import  tag as tag_\r\n     from  trac.util.translation  import  gettext\r\n}}}\r\n\r\nIt looks like the reason there is not an error in later versions of Trac is the addition to the top of the function to handle a tuple argument:\r\n{{{\r\n#!python\r\n    if symbols and not isinstance(symbols[0]_ basestring):\r\n        symbols = symbols[0]\r\n}}}\r\n\r\nSo the modification to the function call may only be necessary for Trac 0.11 compatibility.,defect,new,normal,AnnouncerPlugin,normal,,i18n compatibility,,0.11
