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
