humanize tests depend on a test case mixin defined on tests/i18n/__init__.py
As reported in django-users (https://groups.google.com/d/topic/django-users/u1sycmDbO9c/discussion):
- Having 'django.contrib.humanize' listed in INSTALLED_APPS
- Using TEST_RUNNER='django.test.simple.DjangoTestSuiteRunner'
- Trying to run the tests using
manage.py test
Reported against 1.6b4 but an be reproduced with current 1.6.x and master.
Result of discussion on IRC resulted a suggested fix: Move the TransRealMixin added in 9a1ea4e7e8214a001ca43ae6f0fcea96a5d51489 to a place under the django hierarchy, i.e. django.test.utils that would allow it to be imported using an absolute import.
Change History
(6)
| Description: |
modified (diff)
|
| Has patch: |
set
|
| Triage Stage: |
Unreviewed → Accepted
|
| Owner: |
changed from nobody to anonymous
|
| Status: |
new → assigned
|
| Triage Stage: |
Accepted → Ready for checkin
|
| Resolution: |
→ fixed
|
| Status: |
assigned → closed
|
This is the actual error output:
$ ./manage.py test django/test/_doctest.py:57: DeprecationWarning: The django.test._doctest module is deprecated; use the doctest module from the Python standard library instead. DeprecationWarning) django/test/simple.py:26: DeprecationWarning: The django.test.simple module and DjangoTestSuiteRunner are deprecated; use django.test.runner.DiscoverRunner instead. DeprecationWarning) Traceback (most recent call last): File "./manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "django/core/management/__init__.py", line 408, in execute_from_command_line utility.execute() File "django/core/management/__init__.py", line 401, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "django/core/management/commands/test.py", line 50, in run_from_argv super(Command, self).run_from_argv(argv) File "django/core/management/base.py", line 244, in run_from_argv self.execute(*args, **options.__dict__) File "django/core/management/commands/test.py", line 71, in execute super(Command, self).execute(*args, **options) File "django/core/management/base.py", line 291, in execute output = self.handle(*args, **options) File "django/core/management/commands/test.py", line 88, in handle failures = test_runner.run_tests(test_labels) File "django/test/runner.py", line 145, in run_tests suite = self.build_suite(test_labels, extra_tests) File "django/test/simple.py", line 249, in build_suite suite.addTest(build_suite(app)) File "django/test/simple.py", line 151, in build_suite test_module = get_tests(app_module) File "django/test/simple.py", line 103, in get_tests test_module = import_module('.'.join(prefix + [TEST_MODULE])) File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module __import__(name) File "django/contrib/humanize/tests.py", line 21, in <module> from i18n import TransRealMixin ImportError: No module named i18nI've opened a PR with a propsed fix: https://github.com/django/django/pull/1796