summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2014-02-18 10:19:04 +0100
committerClaude Paroz <claude@2xlibre.net>2014-02-18 10:23:30 +0100
commit45edb9d2359c60952fd791616df887eb95f75746 (patch)
tree4742734d9a93d09484660a7523067b6666ef3285 /tests
parentfaf6a911ad7357c8dd1defa3be0317a8418febf7 (diff)
Fixed #22057 -- Ensured reverse_lazy can be used in settings
And without causing a circular import. Thanks Akis Kesoglou for the report.
Diffstat (limited to 'tests')
-rw-r--r--tests/admin_scripts/tests.py4
-rw-r--r--tests/urlpatterns_reverse/tests.py20
2 files changed, 23 insertions, 1 deletions
diff --git a/tests/admin_scripts/tests.py b/tests/admin_scripts/tests.py
index 19be4a3372..af6aa92754 100644
--- a/tests/admin_scripts/tests.py
+++ b/tests/admin_scripts/tests.py
@@ -40,7 +40,7 @@ custom_templates_dir = os.path.join(os.path.dirname(__file__), 'custom_templates
class AdminScriptTestCase(unittest.TestCase):
- def write_settings(self, filename, apps=None, is_dir=False, sdict=None):
+ def write_settings(self, filename, apps=None, is_dir=False, sdict=None, extra=None):
if is_dir:
settings_dir = os.path.join(test_dir, filename)
os.mkdir(settings_dir)
@@ -51,6 +51,8 @@ class AdminScriptTestCase(unittest.TestCase):
with open(settings_file_path, 'w') as settings_file:
settings_file.write('# -*- coding: utf-8 -*\n')
settings_file.write('# Settings file automatically generated by admin_scripts test case\n')
+ if extra:
+ settings_file.write("%s\n" % extra)
exports = [
'DATABASES',
'ROOT_URLCONF',
diff --git a/tests/urlpatterns_reverse/tests.py b/tests/urlpatterns_reverse/tests.py
index a7fb342da7..2724716783 100644
--- a/tests/urlpatterns_reverse/tests.py
+++ b/tests/urlpatterns_reverse/tests.py
@@ -15,6 +15,8 @@ from django.shortcuts import redirect
from django.test import TestCase, override_settings
from django.utils import six
+from admin_scripts.tests import AdminScriptTestCase
+
from . import urlconf_outer, middleware, views
from .views import empty_view
@@ -301,6 +303,24 @@ class ReverseLazyTest(TestCase):
self.assertEqual(response.status_code, 200)
+class ReverseLazySettingsTest(AdminScriptTestCase):
+ """
+ Test that reverse_lazy can be used in settings without causing a circular
+ import error.
+ """
+ def setUp(self):
+ self.write_settings('settings.py', extra="""
+from django.core.urlresolvers import reverse_lazy
+LOGIN_URL = reverse_lazy('login')""")
+
+ def tearDown(self):
+ self.remove_settings('settings.py')
+
+ def test_lazy_in_settings(self):
+ out, err = self.run_manage(['test'])
+ self.assertOutput(err, "Ran 0 tests")
+
+
class ReverseShortcutTests(TestCase):
urls = 'urlpatterns_reverse.urls'