mirror of https://github.com/django/django.git
87 lines
2.6 KiB
Python
87 lines
2.6 KiB
Python
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.',
|
|
hint=None,
|
|
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.',
|
|
hint=None,
|
|
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',
|
|
)
|
|
])
|