mirror of
https://github.com/django/django.git
synced 2025-08-17 17:20:38 +00:00
Fixed #20653 -- Renamed checksetup management command.
This is to allow future compatibility with work that is ongoing in the 2013 GSoC.
This commit is contained in:
parent
5a6f12182e
commit
0346563939
9 changed files with 17 additions and 17 deletions
107
tests/check/tests.py
Normal file
107
tests/check/tests.py
Normal file
|
@ -0,0 +1,107 @@
|
|||
from django.core.checks.compatibility import base
|
||||
from django.core.checks.compatibility import django_1_6_0
|
||||
from django.core.management.commands import check
|
||||
from django.core.management import call_command
|
||||
from django.test import TestCase
|
||||
|
||||
|
||||
class StubCheckModule(object):
|
||||
# Has no ``run_checks`` attribute & will trigger a warning.
|
||||
__name__ = 'StubCheckModule'
|
||||
|
||||
|
||||
class FakeWarnings(object):
|
||||
def __init__(self):
|
||||
self._warnings = []
|
||||
|
||||
def warn(self, message):
|
||||
self._warnings.append(message)
|
||||
|
||||
|
||||
class CompatChecksTestCase(TestCase):
|
||||
def setUp(self):
|
||||
super(CompatChecksTestCase, self).setUp()
|
||||
|
||||
# We're going to override the list of checks to perform for test
|
||||
# consistency in the future.
|
||||
self.old_compat_checks = base.COMPAT_CHECKS
|
||||
base.COMPAT_CHECKS = [
|
||||
django_1_6_0,
|
||||
]
|
||||
|
||||
def tearDown(self):
|
||||
# Restore what's supposed to be in ``COMPAT_CHECKS``.
|
||||
base.COMPAT_CHECKS = self.old_compat_checks
|
||||
super(CompatChecksTestCase, self).tearDown()
|
||||
|
||||
def test_check_test_runner_new_default(self):
|
||||
with self.settings(TEST_RUNNER='django.test.runner.DiscoverRunner'):
|
||||
result = django_1_6_0.check_test_runner()
|
||||
self.assertTrue("You have not explicitly set 'TEST_RUNNER'" in result)
|
||||
|
||||
def test_check_test_runner_overridden(self):
|
||||
with self.settings(TEST_RUNNER='myapp.test.CustomRunnner'):
|
||||
self.assertEqual(django_1_6_0.check_test_runner(), None)
|
||||
|
||||
def test_run_checks_new_default(self):
|
||||
with self.settings(TEST_RUNNER='django.test.runner.DiscoverRunner'):
|
||||
result = django_1_6_0.run_checks()
|
||||
self.assertEqual(len(result), 1)
|
||||
self.assertTrue("You have not explicitly set 'TEST_RUNNER'" in result[0])
|
||||
|
||||
def test_run_checks_overridden(self):
|
||||
with self.settings(TEST_RUNNER='myapp.test.CustomRunnner'):
|
||||
self.assertEqual(len(django_1_6_0.run_checks()), 0)
|
||||
|
||||
def test_check_compatibility(self):
|
||||
with self.settings(TEST_RUNNER='django.test.runner.DiscoverRunner'):
|
||||
result = base.check_compatibility()
|
||||
self.assertEqual(len(result), 1)
|
||||
self.assertTrue("You have not explicitly set 'TEST_RUNNER'" in result[0])
|
||||
|
||||
with self.settings(TEST_RUNNER='myapp.test.CustomRunnner'):
|
||||
self.assertEqual(len(base.check_compatibility()), 0)
|
||||
|
||||
def test_check_compatibility_warning(self):
|
||||
# First, we're patching over the ``COMPAT_CHECKS`` with a stub which
|
||||
# will trigger the warning.
|
||||
base.COMPAT_CHECKS = [
|
||||
StubCheckModule(),
|
||||
]
|
||||
|
||||
# Next, we unfortunately have to patch out ``warnings``.
|
||||
old_warnings = base.warnings
|
||||
base.warnings = FakeWarnings()
|
||||
|
||||
self.assertEqual(len(base.warnings._warnings), 0)
|
||||
|
||||
with self.settings(TEST_RUNNER='myapp.test.CustomRunnner'):
|
||||
self.assertEqual(len(base.check_compatibility()), 0)
|
||||
|
||||
self.assertEqual(len(base.warnings._warnings), 1)
|
||||
self.assertTrue("The 'StubCheckModule' module lacks a 'run_checks'" in base.warnings._warnings[0])
|
||||
|
||||
# Restore the ``warnings``.
|
||||
base.warnings = old_warnings
|
||||
|
||||
def test_management_command(self):
|
||||
# Again, we unfortunately have to patch out ``warnings``. Different
|
||||
old_warnings = check.warnings
|
||||
check.warnings = FakeWarnings()
|
||||
|
||||
self.assertEqual(len(check.warnings._warnings), 0)
|
||||
|
||||
# Should not produce any warnings.
|
||||
with self.settings(TEST_RUNNER='myapp.test.CustomRunnner'):
|
||||
call_command('check')
|
||||
|
||||
self.assertEqual(len(check.warnings._warnings), 0)
|
||||
|
||||
with self.settings(TEST_RUNNER='django.test.runner.DiscoverRunner'):
|
||||
call_command('check')
|
||||
|
||||
self.assertEqual(len(check.warnings._warnings), 1)
|
||||
self.assertTrue("You have not explicitly set 'TEST_RUNNER'" in check.warnings._warnings[0])
|
||||
|
||||
# Restore the ``warnings``.
|
||||
base.warnings = old_warnings
|
Loading…
Add table
Add a link
Reference in a new issue