Do not try to unserialize multiple times when a setting is inherited

This commit is contained in:
Raphael Michel
2016-11-01 10:46:18 +01:00
parent 95703a0703
commit e8b28f88eb
2 changed files with 24 additions and 2 deletions

View File

@@ -417,7 +417,7 @@ class SettingsProxy:
else:
value = None
if self._parent:
value = self._parent.settings.get(key)
value = self._parent.settings.get(key, as_type=str)
if value is None and key in DEFAULTS:
value = DEFAULTS[key]['default']
if value is None and default is not None:

View File

@@ -216,7 +216,7 @@ class SettingsTestCase(TestCase):
self.assertTrue(f.name.endswith(val.name))
f.close()
def test_detect_file_value(self):
def test_unserialize_file_value(self):
val = SimpleUploadedFile("sample_invalid_image.jpg", b"file_content", content_type="image/jpeg")
default_storage.save(val.name, val)
val.close()
@@ -227,6 +227,28 @@ class SettingsTestCase(TestCase):
self.assertTrue(f.name.endswith(val.name))
f.close()
def test_autodetect_file_value(self):
val = SimpleUploadedFile("sample_invalid_image.jpg", b"file_content", content_type="image/jpeg")
default_storage.save(val.name, val)
val.close()
self.event.settings.set('test', val)
self.event.settings._flush()
f = self.event.settings.get('test')
self.assertIsInstance(f, File)
self.assertTrue(f.name.endswith(val.name))
f.close()
def test_autodetect_file_value_of_parent(self):
val = SimpleUploadedFile("sample_invalid_image.jpg", b"file_content", content_type="image/jpeg")
default_storage.save(val.name, val)
val.close()
self.organizer.settings.set('test', val)
self.organizer.settings._flush()
f = self.event.settings.get('test')
self.assertIsInstance(f, File)
self.assertTrue(f.name.endswith(val.name))
f.close()
def _test_serialization(self, val, as_type):
self.event.settings.set('test', val)
self.event.settings._flush()