summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2023-12-12 05:39:11 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-12-12 05:41:38 +0100
commit5f89da0837009debda998af30f280d7075fb1a4d (patch)
tree0204f45676f9c2337eaed1da4d9b85657036214c /tests
parent03af8fbd0f1cfc08edadda248cf5d3498e8ed2f7 (diff)
[5.0.x] 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. Backport of fcf95e592774a6ededec35481a2061474d467a2b from main.
Diffstat (limited to 'tests')
-rw-r--r--tests/lookup/tests.py1
-rw-r--r--tests/schema/tests.py21
2 files changed, 21 insertions, 1 deletions
diff --git a/tests/lookup/tests.py b/tests/lookup/tests.py
index 8af459ccd7..a198a13b62 100644
--- a/tests/lookup/tests.py
+++ b/tests/lookup/tests.py
@@ -1522,7 +1522,6 @@ class LookupQueryingTests(TestCase):
qs = Season.objects.order_by(LessThan(F("year"), 1910), F("year"))
self.assertSequenceEqual(qs, [self.s1, self.s3, self.s2])
- @skipUnlessDBFeature("supports_boolean_expr_in_select_clause")
def test_aggregate_combined_lookup(self):
expression = Cast(GreaterThan(F("year"), 1900), models.IntegerField())
qs = Season.objects.aggregate(modern=models.Sum(expression))
diff --git a/tests/schema/tests.py b/tests/schema/tests.py
index 046097366c..36c6b5e4bf 100644
--- a/tests/schema/tests.py
+++ b/tests/schema/tests.py
@@ -853,6 +853,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):