Opened 16 years ago
Last modified 16 years ago
#10144 closed
get_comment_app calls __import__ with strings instead of dictionaries for 2nd and 3rd arguments — at Version 1
Reported by: | Jacob Fenwick | Owned by: | nobody |
---|---|---|---|
Component: | Testing framework | Version: | 1.0 |
Severity: | Keywords: | comments jython | |
Cc: | Leo Soto M. | Triage Stage: | Unreviewed |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
When the comment_tests test is run under jython, I get this error:
====================================================================== ERROR: testGetCommentApp (regressiontests.comment_tests.tests.app_api_tests.CommentAppAPITests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/jacob/projects/djython/django-1.0.X/tests/regressiontests/comment_tests/tests/app_api_tests.py", line 11, in testGetCommentApp self.assertEqual(comments.get_comment_app(), comments) File "/Users/jacob/projects/djython/django-1.0.X/django/contrib/comments/__init__.py", line 20, in get_comment_app package = __import__(comments_app, '', '', ['']) File "/Users/jacob/projects/djython/django-1.0.X/django/contrib/comments/__init__.py", line 20, in get_comment_app package = __import__(comments_app, '', '', ['']) TypeError: str indices must be integers
The problem is that the import function is taking a string for the second and third arguments when the parameters should be dictionaries. Python seems to coerce the strings into the correct format, but jython does not.
Here is the patch, which should be applied to all version of django:
svn diff init.py
Index: __init__.py =================================================================== --- __init__.py (revision 9791) +++ __init__.py (working copy) @@ -17,7 +17,7 @@ # Try to import the package try: - package = __import__(comments_app, '', '', ['']) + package = __import__(comments_app, globals(), locals(), ['']) except ImportError: raise ImproperlyConfigured("The COMMENTS_APP setting refers to "\ "a non-existing package.")
Note:
See TracTickets
for help on using tickets.
Patch for init.py