1
0
mirror of https://github.com/django/django.git synced 2025-03-09 17:02:43 +00:00

[5.0.x] Refs #35336 -- Fixed SchemaTests.test_add_generated_field_contains() test on PostgreSQL.

Concat() in Django 5.0 is not immutable on PostgreSQL and cannot be used
in GeneratedField, see 6364b6ee1071381eb3a23ba6b821fc0d6f0fce75.
This commit is contained in:
Mariusz Felisiak 2024-04-05 14:14:35 +02:00 committed by GitHub
parent 4eca0ea042
commit d859c0be9c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -58,8 +58,8 @@ from django.db.models.functions import (
Abs,
Cast,
Collate,
Concat,
Lower,
LPad,
Random,
Round,
Upper,
@ -907,7 +907,7 @@ class SchemaTests(TransactionTestCase):
class GeneratedFieldContainsModel(Model):
text = TextField(default="foo")
generated = GeneratedField(
expression=Concat("text", Value("%")),
expression=LPad("text", 5, Value("%")),
db_persist=True,
output_field=TextField(),
)
@ -931,7 +931,7 @@ class SchemaTests(TransactionTestCase):
obj = GeneratedFieldContainsModel.objects.create()
obj.refresh_from_db()
self.assertEqual(obj.text, "foo")
self.assertEqual(obj.generated, "foo%")
self.assertEqual(obj.generated, "%%foo")
self.assertIs(obj.contains_foo, True)
@isolate_apps("schema")