(self)
| 997 | @isolate_apps("schema") |
| 998 | @skipUnlessDBFeature("supports_stored_generated_columns") |
| 999 | def test_add_generated_field_contains(self): |
| 1000 | class GeneratedFieldContainsModel(Model): |
| 1001 | text = TextField(default="foo") |
| 1002 | generated = GeneratedField( |
| 1003 | expression=Concat("text", Value("%")), |
| 1004 | db_persist=True, |
| 1005 | output_field=TextField(), |
| 1006 | ) |
| 1007 | |
| 1008 | class Meta: |
| 1009 | app_label = "schema" |
| 1010 | |
| 1011 | with connection.schema_editor() as editor: |
| 1012 | editor.create_model(GeneratedFieldContainsModel) |
| 1013 | |
| 1014 | field = GeneratedField( |
| 1015 | expression=Q(text__contains="foo"), |
| 1016 | db_persist=True, |
| 1017 | output_field=BooleanField(), |
| 1018 | ) |
| 1019 | field.contribute_to_class(GeneratedFieldContainsModel, "contains_foo") |
| 1020 | |
| 1021 | with connection.schema_editor() as editor: |
| 1022 | editor.add_field(GeneratedFieldContainsModel, field) |
| 1023 | |
| 1024 | obj = GeneratedFieldContainsModel.objects.create() |
| 1025 | obj.refresh_from_db() |
| 1026 | self.assertEqual(obj.text, "foo") |
| 1027 | self.assertEqual(obj.generated, "foo%") |
| 1028 | self.assertIs(obj.contains_foo, True) |
| 1029 | |
| 1030 | @isolate_apps("schema") |
| 1031 | @skipUnlessDBFeature("supports_stored_generated_columns") |
nothing calls this directly
no test coverage detected