1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- 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')
|