mirror of
https://github.com/django/django.git
synced 2025-10-27 07:36:08 +00:00
Fixed #14503 -- Unified multiple implementations of test cases assert* methods that verify a given exception is raised by a callable throughout the Django test suite.
Replaced them with a new assertRaisesMessage method of a new SimpleTestCase, a lightweight subclass of unittest.TestCase. Both are also available for usage in user tests. git-svn-id: http://code.djangoproject.com/svn/django/trunk@16610 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
@@ -21,7 +21,7 @@ from django.utils import simplejson, unittest as ut2
|
||||
from django.utils.encoding import smart_str
|
||||
|
||||
__all__ = ('DocTestRunner', 'OutputChecker', 'TestCase', 'TransactionTestCase',
|
||||
'skipIfDBFeature', 'skipUnlessDBFeature')
|
||||
'SimpleTestCase', 'skipIfDBFeature', 'skipUnlessDBFeature')
|
||||
|
||||
normalize_long_ints = lambda s: re.sub(r'(?<![\w])(\d+)L(?![\w])', '\\1', s)
|
||||
normalize_decimals = lambda s: re.sub(r"Decimal\('(\d+(\.\d*)?)'\)", lambda m: "Decimal(\"%s\")" % m.groups()[0], s)
|
||||
@@ -235,8 +235,43 @@ class _AssertNumQueriesContext(object):
|
||||
)
|
||||
)
|
||||
|
||||
class SimpleTestCase(ut2.TestCase):
|
||||
|
||||
class TransactionTestCase(ut2.TestCase):
|
||||
def save_warnings_state(self):
|
||||
"""
|
||||
Saves the state of the warnings module
|
||||
"""
|
||||
self._warnings_state = get_warnings_state()
|
||||
|
||||
def restore_warnings_state(self):
|
||||
"""
|
||||
Restores the sate of the warnings module to the state
|
||||
saved by save_warnings_state()
|
||||
"""
|
||||
restore_warnings_state(self._warnings_state)
|
||||
|
||||
def settings(self, **kwargs):
|
||||
"""
|
||||
A context manager that temporarily sets a setting and reverts
|
||||
back to the original value when exiting the context.
|
||||
"""
|
||||
return override_settings(**kwargs)
|
||||
|
||||
def assertRaisesMessage(self, expected_exception, expected_message,
|
||||
callable_obj=None, *args, **kwargs):
|
||||
"""Asserts that the message in a raised exception matches the passe value.
|
||||
|
||||
Args:
|
||||
expected_exception: Exception class expected to be raised.
|
||||
expected_message: expected error message string value.
|
||||
callable_obj: Function to be called.
|
||||
args: Extra args.
|
||||
kwargs: Extra kwargs.
|
||||
"""
|
||||
return self.assertRaisesRegexp(expected_exception,
|
||||
re.escape(expected_message), callable_obj, *args, **kwargs)
|
||||
|
||||
class TransactionTestCase(SimpleTestCase):
|
||||
# The class we'll use for the test client self.client.
|
||||
# Can be overridden in derived classes.
|
||||
client_class = Client
|
||||
@@ -332,26 +367,6 @@ class TransactionTestCase(ut2.TestCase):
|
||||
settings.ROOT_URLCONF = self._old_root_urlconf
|
||||
clear_url_caches()
|
||||
|
||||
def save_warnings_state(self):
|
||||
"""
|
||||
Saves the state of the warnings module
|
||||
"""
|
||||
self._warnings_state = get_warnings_state()
|
||||
|
||||
def restore_warnings_state(self):
|
||||
"""
|
||||
Restores the sate of the warnings module to the state
|
||||
saved by save_warnings_state()
|
||||
"""
|
||||
restore_warnings_state(self._warnings_state)
|
||||
|
||||
def settings(self, **kwargs):
|
||||
"""
|
||||
A context manager that temporarily sets a setting and reverts
|
||||
back to the original value when exiting the context.
|
||||
"""
|
||||
return override_settings(**kwargs)
|
||||
|
||||
def assertRedirects(self, response, expected_url, status_code=302,
|
||||
target_status_code=200, host=None, msg_prefix=''):
|
||||
"""Asserts that a response redirected to a specific URL, and that the
|
||||
|
||||
Reference in New Issue
Block a user