[1.8.x] Fixed #24595 Oracle test failure
The only problem for Oracle was the test, which tested nullity on
text/char fields -- but Oracle interprets_empty_strings_as_null.
Backport of d5a0acc
from master
This commit is contained in:
parent
ae47854a25
commit
8363f217f2
|
@ -8,14 +8,14 @@ from django.db import (
|
||||||
)
|
)
|
||||||
from django.db.models import Model
|
from django.db.models import Model
|
||||||
from django.db.models.fields import (
|
from django.db.models.fields import (
|
||||||
BinaryField, BooleanField, CharField, DateTimeField, IntegerField,
|
BigIntegerField, BinaryField, BooleanField, CharField, DateTimeField,
|
||||||
PositiveIntegerField, SlugField, TextField,
|
IntegerField, PositiveIntegerField, SlugField, TextField,
|
||||||
)
|
)
|
||||||
from django.db.models.fields.related import (
|
from django.db.models.fields.related import (
|
||||||
ForeignKey, ManyToManyField, OneToOneField,
|
ForeignKey, ManyToManyField, OneToOneField,
|
||||||
)
|
)
|
||||||
from django.db.transaction import atomic
|
from django.db.transaction import atomic
|
||||||
from django.test import TransactionTestCase
|
from django.test import TransactionTestCase, skipIfDBFeature
|
||||||
|
|
||||||
from .fields import CustomManyToManyField, InheritedManyToManyField
|
from .fields import CustomManyToManyField, InheritedManyToManyField
|
||||||
from .models import (
|
from .models import (
|
||||||
|
@ -426,7 +426,8 @@ class SchemaTests(TransactionTestCase):
|
||||||
with connection.schema_editor() as editor:
|
with connection.schema_editor() as editor:
|
||||||
editor.alter_field(Note, old_field, new_field, strict=True)
|
editor.alter_field(Note, old_field, new_field, strict=True)
|
||||||
|
|
||||||
def test_alter_field_keep_null_status(self):
|
@skipIfDBFeature('interprets_empty_strings_as_nulls')
|
||||||
|
def test_alter_textual_field_keep_null_status(self):
|
||||||
"""
|
"""
|
||||||
Changing a field type shouldn't affect the not null status.
|
Changing a field type shouldn't affect the not null status.
|
||||||
"""
|
"""
|
||||||
|
@ -442,6 +443,22 @@ class SchemaTests(TransactionTestCase):
|
||||||
with self.assertRaises(IntegrityError):
|
with self.assertRaises(IntegrityError):
|
||||||
Note.objects.create(info=None)
|
Note.objects.create(info=None)
|
||||||
|
|
||||||
|
def test_alter_numeric_field_keep_null_status(self):
|
||||||
|
"""
|
||||||
|
Changing a field type shouldn't affect the not null status.
|
||||||
|
"""
|
||||||
|
with connection.schema_editor() as editor:
|
||||||
|
editor.create_model(UniqueTest)
|
||||||
|
with self.assertRaises(IntegrityError):
|
||||||
|
UniqueTest.objects.create(year=None, slug='aaa')
|
||||||
|
old_field = UniqueTest._meta.get_field("year")
|
||||||
|
new_field = BigIntegerField()
|
||||||
|
new_field.set_attributes_from_name("year")
|
||||||
|
with connection.schema_editor() as editor:
|
||||||
|
editor.alter_field(UniqueTest, old_field, new_field, strict=True)
|
||||||
|
with self.assertRaises(IntegrityError):
|
||||||
|
UniqueTest.objects.create(year=None, slug='bbb')
|
||||||
|
|
||||||
def test_alter_null_to_not_null(self):
|
def test_alter_null_to_not_null(self):
|
||||||
"""
|
"""
|
||||||
#23609 - Tests handling of default values when altering from NULL to NOT NULL.
|
#23609 - Tests handling of default values when altering from NULL to NOT NULL.
|
||||||
|
|
Loading…
Reference in New Issue