summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2013-02-16 13:26:36 +0100
committerClaude Paroz <claude@2xlibre.net>2013-02-16 13:31:13 +0100
commit632361611c6386696dc525ad3aecf065e6ed98ee (patch)
tree50b990285aa14a1c17b845a7ee931b44b3f7b5c3
parente74e207cce54802f897adcb42149440ee154821e (diff)
downloaddjango-632361611c6386696dc525ad3aecf065e6ed98ee.tar.gz
Fixed #19833 -- Fixed import parameter encoding in get_runner
Thanks Danilo Bargen for the report.
-rw-r--r--django/test/utils.py7
-rw-r--r--tests/regressiontests/test_runner/tests.py7
2 files changed, 10 insertions, 4 deletions
diff --git a/django/test/utils.py b/django/test/utils.py
index 9413ea8dc4..a8ed3d6317 100644
--- a/django/test/utils.py
+++ b/django/test/utils.py
@@ -4,12 +4,13 @@ from xml.dom.minidom import parseString, Node
from django.conf import settings, UserSettingsHolder
from django.core import mail
-from django.test.signals import template_rendered, setting_changed
from django.template import Template, loader, TemplateDoesNotExist
from django.template.loaders import cached
-from django.utils.translation import deactivate
+from django.test.signals import template_rendered, setting_changed
+from django.utils.encoding import force_str
from django.utils.functional import wraps
from django.utils import six
+from django.utils.translation import deactivate
__all__ = (
@@ -133,7 +134,7 @@ def get_runner(settings, test_runner_class=None):
test_module_name = '.'.join(test_path[:-1])
else:
test_module_name = '.'
- test_module = __import__(test_module_name, {}, {}, test_path[-1])
+ test_module = __import__(test_module_name, {}, {}, force_str(test_path[-1]))
test_runner = getattr(test_module, test_path[-1])
return test_runner
diff --git a/tests/regressiontests/test_runner/tests.py b/tests/regressiontests/test_runner/tests.py
index 93eabf74e3..5df421c54b 100644
--- a/tests/regressiontests/test_runner/tests.py
+++ b/tests/regressiontests/test_runner/tests.py
@@ -1,7 +1,7 @@
"""
Tests for django test runner
"""
-from __future__ import absolute_import
+from __future__ import absolute_import, unicode_literals
import sys
from optparse import make_option
@@ -150,6 +150,11 @@ class ManageCommandTests(unittest.TestCase):
self.assertTrue(MockTestRunner.invoked,
"The custom test runner has not been invoked")
+ def test_bad_test_runner(self):
+ with self.assertRaises(AttributeError):
+ call_command('test', 'sites',
+ testrunner='regressiontests.test_runner.NonExistentRunner')
+
class CustomOptionsTestRunner(simple.DjangoTestSuiteRunner):
option_list = (