1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
try:
from django.contrib.postgres import forms
from django.contrib.postgres.fields import JSONField
from django.contrib.postgres.fields.jsonb import (
KeyTextTransform, KeyTransform,
)
except ImportError:
pass
from django.core.checks import Warning as DjangoWarning
from django.utils.deprecation import RemovedInDjango40Warning
from . import PostgreSQLSimpleTestCase
from .models import PostgreSQLModel
class DeprecationTests(PostgreSQLSimpleTestCase):
def test_model_field_deprecation_message(self):
class PostgreSQLJSONModel(PostgreSQLModel):
field = JSONField()
self.assertEqual(PostgreSQLJSONModel().check(), [
DjangoWarning(
'django.contrib.postgres.fields.JSONField is deprecated. '
'Support for it (except in historical migrations) will be '
'removed in Django 4.0.',
hint='Use django.db.models.JSONField instead.',
obj=PostgreSQLJSONModel._meta.get_field('field'),
id='fields.W904',
),
])
def test_form_field_deprecation_message(self):
msg = (
'django.contrib.postgres.forms.JSONField is deprecated in favor '
'of django.forms.JSONField.'
)
with self.assertWarnsMessage(RemovedInDjango40Warning, msg):
forms.JSONField()
def test_key_transform_deprecation_message(self):
msg = (
'django.contrib.postgres.fields.jsonb.KeyTransform is deprecated '
'in favor of django.db.models.fields.json.KeyTransform.'
)
with self.assertWarnsMessage(RemovedInDjango40Warning, msg):
KeyTransform('foo', 'bar')
def test_key_text_transform_deprecation_message(self):
msg = (
'django.contrib.postgres.fields.jsonb.KeyTextTransform is '
'deprecated in favor of '
'django.db.models.fields.json.KeyTextTransform.'
)
with self.assertWarnsMessage(RemovedInDjango40Warning, msg):
KeyTextTransform('foo', 'bar')
|