1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- from django.apps import apps
- from django.test import TestCase
- from .. import migrationutils
- from ..models import SettingsGroup
- class DBConfMigrationUtilsTests(TestCase):
- def setUp(self):
- self.test_group = {
- "key": "test_group",
- "name": "Test settings",
- "description": "Those are test settings.",
- "settings": [
- {
- "setting": "fish_name",
- "name": "Fish's name",
- "value": "Eric",
- "field_extra": {"min_length": 2, "max_length": 255},
- },
- {
- "setting": "fish_license_no",
- "name": "Fish's license number",
- "default_value": "123-456",
- "field_extra": {"max_length": 255},
- },
- ],
- }
- migrationutils.migrate_settings_group(apps, self.test_group)
- self.groups_count = SettingsGroup.objects.count()
- def test_get_custom_group_and_settings(self):
- """tests setup created settings group"""
- custom_group = migrationutils.get_group(
- apps.get_model("misago_conf", "SettingsGroup"), self.test_group["key"]
- )
- self.assertEqual(custom_group.key, self.test_group["key"])
- self.assertEqual(custom_group.name, self.test_group["name"])
- self.assertEqual(custom_group.description, self.test_group["description"])
- custom_settings = migrationutils.get_custom_settings_values(custom_group)
- self.assertEqual(custom_settings["fish_name"], "Eric")
- self.assertTrue("fish_license_no" not in custom_settings)
- def test_change_group_key(self):
- """migrate_settings_group changed group key"""
- new_group = {
- "key": "new_test_group",
- "name": "New test settings",
- "description": "Those are updated test settings.",
- "settings": [
- {
- "setting": "fish_new_name",
- "name": "Fish's new name",
- "value": "Eric",
- "field_extra": {"min_length": 2, "max_length": 255},
- },
- {
- "setting": "fish_new_license_no",
- "name": "Fish's changed license number",
- "default_value": "123-456",
- "field_extra": {"max_length": 255},
- },
- ],
- }
- migrationutils.migrate_settings_group(
- apps, new_group, old_group_key=self.test_group["key"]
- )
- db_group = migrationutils.get_group(
- apps.get_model("misago_conf", "SettingsGroup"), new_group["key"]
- )
- self.assertEqual(SettingsGroup.objects.count(), self.groups_count)
- self.assertEqual(db_group.key, new_group["key"])
- self.assertEqual(db_group.name, new_group["name"])
- self.assertEqual(db_group.description, new_group["description"])
- for setting in new_group["settings"]:
- db_setting = db_group.setting_set.get(setting=setting["setting"])
- self.assertEqual(db_setting.name, setting["name"])
|