summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorRamiro Morales <cramm0@gmail.com>2013-01-31 14:56:26 -0300
committerRamiro Morales <cramm0@gmail.com>2013-01-31 14:57:45 -0300
commit7947c9e3a6bd8c1dfe7fc209fb2256a528149bb6 (patch)
treeaaec5644d25ad799fd7f4c3d5d9482933aeb9f20 /django
parent9a4a1ce323237d0aadafbddcd270c47be251bac2 (diff)
Deprecated undocumented warnings manipulation testing tools.
Diffstat (limited to 'django')
-rw-r--r--django/test/testcases.py21
-rw-r--r--django/test/utils.py7
2 files changed, 21 insertions, 7 deletions
diff --git a/django/test/testcases.py b/django/test/testcases.py
index c311540fc3..3aa0afa35e 100644
--- a/django/test/testcases.py
+++ b/django/test/testcases.py
@@ -1,12 +1,13 @@
from __future__ import unicode_literals
+from copy import copy
import difflib
+import errno
+from functools import wraps
import json
import os
import re
import sys
-from copy import copy
-from functools import wraps
try:
from urllib.parse import urlsplit, urlunsplit
except ImportError: # Python 2
@@ -14,7 +15,7 @@ except ImportError: # Python 2
import select
import socket
import threading
-import errno
+import warnings
from django.conf import settings
from django.contrib.staticfiles.handlers import StaticFilesHandler
@@ -36,8 +37,7 @@ from django.test import _doctest as doctest
from django.test.client import Client
from django.test.html import HTMLParseError, parse_html
from django.test.signals import template_rendered
-from django.test.utils import (get_warnings_state, restore_warnings_state,
- override_settings, compare_xml, strip_quotes)
+from django.test.utils import (override_settings, compare_xml, strip_quotes)
from django.test.utils import ContextList
from django.utils import unittest as ut2
from django.utils.encoding import force_text
@@ -241,6 +241,11 @@ class _AssertTemplateNotUsedContext(_AssertTemplateUsedContext):
class SimpleTestCase(ut2.TestCase):
+
+ _warn_txt = ("save_warnings_state/restore_warnings_state "
+ "django.test.*TestCase methods are deprecated. Use Python's "
+ "warnings.catch_warnings context manager instead.")
+
def __call__(self, result=None):
"""
Wrapper around default __call__ method to perform common Django test
@@ -279,14 +284,16 @@ class SimpleTestCase(ut2.TestCase):
"""
Saves the state of the warnings module
"""
- self._warnings_state = get_warnings_state()
+ warnings.warn(self._warn_txt, DeprecationWarning, stacklevel=2)
+ self._warnings_state = warnings.filters[:]
def restore_warnings_state(self):
"""
Restores the state of the warnings module to the state
saved by save_warnings_state()
"""
- restore_warnings_state(self._warnings_state)
+ warnings.warn(self._warn_txt, DeprecationWarning, stacklevel=2)
+ warnings.filters = self._warnings_state[:]
def settings(self, **kwargs):
"""
diff --git a/django/test/utils.py b/django/test/utils.py
index 8114ae0e6a..9413ea8dc4 100644
--- a/django/test/utils.py
+++ b/django/test/utils.py
@@ -98,6 +98,11 @@ def teardown_test_environment():
del mail.outbox
+warn_txt = ("get_warnings_state/restore_warnings_state functions from "
+ "django.test.utils are deprecated. Use Python's warnings.catch_warnings() "
+ "context manager instead.")
+
+
def get_warnings_state():
"""
Returns an object containing the state of the warnings module
@@ -105,6 +110,7 @@ def get_warnings_state():
# There is no public interface for doing this, but this implementation of
# get_warnings_state and restore_warnings_state appears to work on Python
# 2.4 to 2.7.
+ warnings.warn(warn_txt, DeprecationWarning, stacklevel=2)
return warnings.filters[:]
@@ -113,6 +119,7 @@ def restore_warnings_state(state):
Restores the state of the warnings module when passed an object that was
returned by get_warnings_state()
"""
+ warnings.warn(warn_txt, DeprecationWarning, stacklevel=2)
warnings.filters = state[:]