[1.7.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
84142946c0
commit
773ec512b1
@ -1,10 +1,10 @@
|
||||
import datetime
|
||||
import unittest
|
||||
|
||||
from django.test import TransactionTestCase
|
||||
from django.test import TransactionTestCase, skipIfDBFeature
|
||||
from django.db import connection, DatabaseError, IntegrityError, OperationalError
|
||||
from django.db.models.fields import (BinaryField, BooleanField, CharField, IntegerField,
|
||||
PositiveIntegerField, SlugField, TextField)
|
||||
from django.db.models.fields import (BigIntegerField, BinaryField, BooleanField, CharField,
|
||||
IntegerField, PositiveIntegerField, SlugField, TextField)
|
||||
from django.db.models.fields.related import ForeignKey, ManyToManyField, OneToOneField
|
||||
from django.db.transaction import atomic
|
||||
from .fields import CustomManyToManyField, InheritedManyToManyField
|
||||
@ -439,7 +439,8 @@ class SchemaTests(TransactionTestCase):
|
||||
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.
|
||||
"""
|
||||
@ -455,6 +456,22 @@ class SchemaTests(TransactionTestCase):
|
||||
with self.assertRaises(IntegrityError):
|
||||
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):
|
||||
"""
|
||||
#23609 - Tests handling of default values when altering from NULL to NOT NULL.
|
||||
|
Loading…
x
Reference in New Issue
Block a user