Fixed #19833 -- Fixed import parameter encoding in get_runner

Thanks Danilo Bargen for the report.
This commit is contained in:
Claude Paroz 2013-02-16 13:26:36 +01:00
parent e74e207cce
commit 632361611c
2 changed files with 10 additions and 4 deletions

View File

@ -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

View File

@ -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 = (