1
0
mirror of https://github.com/django/django.git synced 2025-08-23 10:19:13 +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, Abs,
Cast, Cast,
Collate, Collate,
Concat,
Lower, Lower,
LPad,
Random, Random,
Round, Round,
Upper, Upper,
@ -907,7 +907,7 @@ class SchemaTests(TransactionTestCase):
class GeneratedFieldContainsModel(Model): class GeneratedFieldContainsModel(Model):
text = TextField(default="foo") text = TextField(default="foo")
generated = GeneratedField( generated = GeneratedField(
expression=Concat("text", Value("%")), expression=LPad("text", 5, Value("%")),
db_persist=True, db_persist=True,
output_field=TextField(), output_field=TextField(),
) )
@ -931,7 +931,7 @@ class SchemaTests(TransactionTestCase):
obj = GeneratedFieldContainsModel.objects.create() obj = GeneratedFieldContainsModel.objects.create()
obj.refresh_from_db() obj.refresh_from_db()
self.assertEqual(obj.text, "foo") self.assertEqual(obj.text, "foo")
self.assertEqual(obj.generated, "foo%") self.assertEqual(obj.generated, "%%foo")
self.assertIs(obj.contains_foo, True) self.assertIs(obj.contains_foo, True)
@isolate_apps("schema") @isolate_apps("schema")