Fix and test migration

This commit is contained in:
shamoon 2024-11-13 09:13:00 -08:00
parent ea88466129
commit 79bf125e78
2 changed files with 29 additions and 1 deletions

View File

@ -55,7 +55,7 @@ def reverse_migrate_customfield_selects(apps, schema_editor):
instance.value_select = next(
index
for index, option in enumerate(old_select_options)
if option.id == instance.value_select
if option.get("id") == instance.value_select
)
instance.save()

View File

@ -14,9 +14,18 @@ class TestMigrateCustomFieldSelects(TestMigrations):
data_type="select",
extra_data={"select_options": ["Option 1", "Option 2", "Option 3"]},
)
Document = apps.get_model("documents.Document")
doc = Document.objects.create(title="doc1")
CustomFieldInstance = apps.get_model("documents.CustomFieldInstance")
self.old_instance = CustomFieldInstance.objects.create(
field=self.old_format,
value_select=0,
document=doc,
)
def test_migrate_old_to_new_storage_path(self):
self.old_format.refresh_from_db()
self.old_instance.refresh_from_db()
self.assertEqual(
self.old_format.extra_data["select_options"],
@ -27,6 +36,11 @@ class TestMigrateCustomFieldSelects(TestMigrations):
],
)
self.assertEqual(
self.old_instance.value_select,
self.old_format.extra_data["select_options"][0]["id"],
)
class TestMigrationCustomFieldSelectsReverse(TestMigrations):
migrate_from = "1057_alter_customfieldinstance_value_select"
@ -45,9 +59,18 @@ class TestMigrationCustomFieldSelectsReverse(TestMigrations):
],
},
)
Document = apps.get_model("documents.Document")
doc = Document.objects.create(title="doc1")
CustomFieldInstance = apps.get_model("documents.CustomFieldInstance")
self.new_instance = CustomFieldInstance.objects.create(
field=self.new_format,
value_select="id1",
document=doc,
)
def test_migrate_new_to_old_storage_path(self):
self.new_format.refresh_from_db()
self.new_instance.refresh_from_db()
self.assertEqual(
self.new_format.extra_data["select_options"],
@ -57,3 +80,8 @@ class TestMigrationCustomFieldSelectsReverse(TestMigrations):
"Option 3",
],
)
self.assertEqual(
self.new_instance.value_select,
0,
)