diff options
Diffstat (limited to 'tests/queries')
| -rw-r--r-- | tests/queries/test_deprecation.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/queries/test_deprecation.py b/tests/queries/test_deprecation.py new file mode 100644 index 0000000000..1dc8031fa7 --- /dev/null +++ b/tests/queries/test_deprecation.py @@ -0,0 +1,30 @@ +from contextlib import contextmanager + +from django.core.exceptions import FieldDoesNotExist, FieldError +from django.db.models.query_utils import InvalidQuery +from django.test import SimpleTestCase +from django.utils.deprecation import RemovedInDjango40Warning + + +class InvalidQueryTests(SimpleTestCase): + @contextmanager + def assert_warns(self): + msg = ( + 'The InvalidQuery exception class is deprecated. Use ' + 'FieldDoesNotExist or FieldError instead.' + ) + with self.assertWarnsMessage(RemovedInDjango40Warning, msg): + yield + + def test_type(self): + self.assertIsInstance(InvalidQuery(), InvalidQuery) + + def test_isinstance(self): + for exception in (FieldError, FieldDoesNotExist): + with self.assert_warns(), self.subTest(exception.__name__): + self.assertIsInstance(exception(), InvalidQuery) + + def test_issubclass(self): + for exception in (FieldError, FieldDoesNotExist, InvalidQuery): + with self.assert_warns(), self.subTest(exception.__name__): + self.assertIs(issubclass(exception, InvalidQuery), True) |
