summaryrefslogtreecommitdiff
path: root/tests/schema
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2023-12-12 05:39:11 +0100
committerGitHub <noreply@github.com>2023-12-12 05:39:11 +0100
commitfcf95e592774a6ededec35481a2061474d467a2b (patch)
treea29be963a35061170cb18d18bcd68dc194fe5728 /tests/schema
parentb287af5dc954628d4b336aefc5027b2edceee64b (diff)
Fixed #35018 -- Fixed migrations crash on GeneratedField with BooleanField as output_field on Oracle < 23c.
Thanks Václav Řehák for the report. Regression in f333e3513e8bdf5ffeb6eeb63021c230082e6f95.
Diffstat (limited to 'tests/schema')
-rw-r--r--tests/schema/tests.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/schema/tests.py b/tests/schema/tests.py
index d44b8e25aa..c4e61976f1 100644
--- a/tests/schema/tests.py
+++ b/tests/schema/tests.py
@@ -847,6 +847,27 @@ class SchemaTests(TransactionTestCase):
)
@isolate_apps("schema")
+ @skipUnlessDBFeature("supports_virtual_generated_columns")
+ def test_add_generated_boolean_field(self):
+ class GeneratedBooleanFieldModel(Model):
+ value = IntegerField(null=True)
+ has_value = GeneratedField(
+ expression=Q(value__isnull=False),
+ output_field=BooleanField(),
+ db_persist=False,
+ )
+
+ class Meta:
+ app_label = "schema"
+
+ with connection.schema_editor() as editor:
+ editor.create_model(GeneratedBooleanFieldModel)
+ obj = GeneratedBooleanFieldModel.objects.create()
+ self.assertIs(obj.has_value, False)
+ obj = GeneratedBooleanFieldModel.objects.create(value=1)
+ self.assertIs(obj.has_value, True)
+
+ @isolate_apps("schema")
@skipUnlessDBFeature("supports_stored_generated_columns")
def test_add_generated_field(self):
class GeneratedFieldOutputFieldModel(Model):