123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- from django.core import checks
- from django.db import models
- from django.test import SimpleTestCase
- from django.test.utils import isolate_apps
- @isolate_apps('check_framework')
- class TestDeprecatedField(SimpleTestCase):
- def test_default_details(self):
- class MyField(models.Field):
- system_check_deprecated_details = {}
- class Model(models.Model):
- name = MyField()
- model = Model()
- self.assertEqual(model.check(), [
- checks.Warning(
- msg='MyField has been deprecated.',
- obj=Model._meta.get_field('name'),
- id='fields.WXXX',
- )
- ])
- def test_user_specified_details(self):
- class MyField(models.Field):
- system_check_deprecated_details = {
- 'msg': 'This field is deprecated and will be removed soon.',
- 'hint': 'Use something else.',
- 'id': 'fields.W999',
- }
- class Model(models.Model):
- name = MyField()
- model = Model()
- self.assertEqual(model.check(), [
- checks.Warning(
- msg='This field is deprecated and will be removed soon.',
- hint='Use something else.',
- obj=Model._meta.get_field('name'),
- id='fields.W999',
- )
- ])
- @isolate_apps('check_framework')
- class TestRemovedField(SimpleTestCase):
- def test_default_details(self):
- class MyField(models.Field):
- system_check_removed_details = {}
- class Model(models.Model):
- name = MyField()
- model = Model()
- self.assertEqual(model.check(), [
- checks.Error(
- msg='MyField has been removed except for support in historical migrations.',
- obj=Model._meta.get_field('name'),
- id='fields.EXXX',
- )
- ])
- def test_user_specified_details(self):
- class MyField(models.Field):
- system_check_removed_details = {
- 'msg': 'Support for this field is gone.',
- 'hint': 'Use something else.',
- 'id': 'fields.E999',
- }
- class Model(models.Model):
- name = MyField()
- model = Model()
- self.assertEqual(model.check(), [
- checks.Error(
- msg='Support for this field is gone.',
- hint='Use something else.',
- obj=Model._meta.get_field('name'),
- id='fields.E999',
- )
- ])
|