mirror of
https://github.com/django/django.git
synced 2024-12-23 17:46:27 +00:00
11e327a3ff
It was barely documented without pointers at its defining location and was abused to prevent misuse of the QuerySet field deferring feature.
31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
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)
|