(self, db_persist)
| 6598 | self.apply_operations(app_label, project_state, operations) |
| 6599 | |
| 6600 | def _test_add_generated_field(self, db_persist): |
| 6601 | app_label = "test_agf" |
| 6602 | operation = migrations.AddField( |
| 6603 | "Pony", |
| 6604 | "modified_pink", |
| 6605 | models.GeneratedField( |
| 6606 | expression=F("pink") + F("pink"), |
| 6607 | output_field=models.IntegerField(), |
| 6608 | db_persist=db_persist, |
| 6609 | ), |
| 6610 | ) |
| 6611 | project_state, new_state = self.make_test_state(app_label, operation) |
| 6612 | self.assertEqual(len(new_state.models[app_label, "pony"].fields), 6) |
| 6613 | # Add generated column. |
| 6614 | with connection.schema_editor() as editor: |
| 6615 | operation.database_forwards(app_label, editor, project_state, new_state) |
| 6616 | self.assertColumnExists(f"{app_label}_pony", "modified_pink") |
| 6617 | Pony = new_state.apps.get_model(app_label, "Pony") |
| 6618 | obj = Pony.objects.create(pink=5, weight=3.23) |
| 6619 | self.assertEqual(obj.modified_pink, 10) |
| 6620 | # Reversal. |
| 6621 | with connection.schema_editor() as editor: |
| 6622 | operation.database_backwards(app_label, editor, new_state, project_state) |
| 6623 | self.assertColumnNotExists(f"{app_label}_pony", "modified_pink") |
| 6624 | |
| 6625 | @skipUnlessDBFeature( |
| 6626 | "supports_stored_generated_columns", "supports_alter_generated_column_data_type" |
no test coverage detected