def test_edit_settings_errors(self): client = self.login(TEST_USERNAME) for key, values in WRONG_SETTINGS.items(): old_value = getattr(settings, key) for value in values: data = copy.deepcopy(TEST_SETTINGS) data.update({key: value}) response = client.post(self.edit_settings_url, data) self.assertContains( response, 'Settings cannot be saved cause of validation issues. ' \ 'Check for errors below.' ) self.assertContains(response, '<dd class="errors">') settings._clear() if is_settings_container(old_value): new_value = getattr(settings, key) self.assertTrue(is_settings_container(new_value)) self.assertEqual(old_value._prefix, new_value._prefix) else: self.assertEqual(getattr(settings, key), old_value)
def clear_settings_cache(instance, **kwargs): """ Clear settings cache if any. """ from setman import settings settings._clear() if CACHE_KEY in cache: cache.delete(CACHE_KEY)
def test_admin_edit(self): client = self.login(TEST_USERNAME, is_admin=True) response = client.get(self.edit_url) self.check_labels(response) response = client.post(self.edit_url, self.to_post_data(NEW_SETTINGS)) self.assertEqual(response.status_code, 302) self.assertIn(self.edit_url, response['Location']) settings._clear() self.check_values(settings, NEW_SETTINGS)
def test_edit_settings(self): client = self.login(TEST_USERNAME) response = client.get(self.edit_settings_url) self.assertContains(response, 'Edit Settings', count=2) self.check_labels(response) data = self.to_post_data(NEW_SETTINGS) response = client.post(self.edit_settings_url, data) self.assertEqual(response.status_code, 302) self.assertIn(self.edit_settings_url, response['Location']) settings._clear() self.check_values(settings, NEW_SETTINGS)
def test_admin_edit(self): client = self.login(TEST_USERNAME, is_admin=True) response = client.get(self.edit_url) for setting in AVAILABLE_SETTINGS: self.assertContains(response, setting.label) self.assertContains(response, setting.help_text) response = client.post(self.edit_url, NEW_SETTINGS) self.assertEqual(response.status_code, 302) self.assertIn(self.edit_url, response['Location']) settings._clear() for key, value in NEW_SETTINGS.items(): self.assertEqual(getattr(settings, key), value)
def test_app_settings(self): self.assertRaises(AttributeError, getattr, settings, 'auth') self.assertTrue(hasattr(settings, 'core')) self.assertTrue(is_settings_container(settings.core)) self.assertEqual(settings.core.app_setting, None) self.assertEqual(settings.core.setting_to_redefine, 0) settings.core.app_setting = 'string' settings.core.setting_to_redefine = 60 settings.save() settings._clear() cache.clear() self.assertEqual(settings.core.app_setting, 'string') self.assertEqual(settings.core.setting_to_redefine, 60)
def setUp(self): settings._clear() cache.clear()
def tearDown(self): django_settings.AUTHENTICATION_BACKENDS = \ self.old_AUTHENTICATION_BACKENDS settings._clear()