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:32:03 +0100
commit41848b078a2f0402b23043da7cfb517d0a194aa3 (patch)
tree66e37f675f6424e99368f2908d75ad0bdc2d6be2
parent461d6e22957770449cd99367358c5e419bc3a86d (diff)
[1.5.x] Fixed #19833 -- Fixed import parameter encoding in get_runner
Thanks Danilo Bargen for the report. Backport of 63236161 from master.
-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 8114ae0e6a..bd17e1303b 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__ = (
@@ -126,7 +127,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 = (