class TestConfigurationUpdate(TestCase): def setUp(self): self.config = {'a': 1, 'b': 'test'} self.container = ConfigurationContainer(self.config, configuration_schema) def test_rejects_invalid_new_config(self): self.assertRaises(ValidationError, lambda: self.container.update({'c': 3})) def test_fails_if_no_schema_set(self): self.container.set_schema(None) self.assertRaises(RuntimeError, lambda: self.container.update({'c': 3})) def test_ignores_secret_placehodler(self): self.container.update(self.container.to_dict(mask_secrets=True)) self.assertEqual(self.container['b'], self.config['b']) def test_updates_secret(self): new_config = {'a': 2, 'b': 'new'} self.container.update(new_config) self.assertDictEqual(self.container._config, new_config) def test_doesnt_leave_leftovers(self): container = ConfigurationContainer({'a': 1, 'b': 'test', 'e': 3}, configuration_schema) new_config = container.to_dict(mask_secrets=True) new_config.pop('e') container.update(new_config) self.assertEqual(container['a'], 1) self.assertEqual('test', container['b']) self.assertNotIn('e', container)
def test_doesnt_leave_leftovers(self): container = ConfigurationContainer({'a': 1, 'b': 'test', 'e': 3}, configuration_schema) new_config = container.to_dict(mask_secrets=True) new_config.pop('e') container.update(new_config) self.assertEqual(container['a'], 1) self.assertEqual('test', container['b']) self.assertNotIn('e', container)
def test_doesnt_leave_leftovers(self): container = ConfigurationContainer({'a': 1, 'b': 'test', 'e': 3}, configuration_schema) new_config = container.to_dict(mask_secrets=True) new_config.pop('e') container.update(new_config) self.assertEqual(container['a'], 1) self.assertEqual('test', container['b']) self.assertNotIn('e', container)
class TestConfigurationToJson(TestCase): def setUp(self): self.config = {'a': 1, 'b': 'test'} self.container = ConfigurationContainer(self.config, configuration_schema) def test_returns_plain_dict(self): self.assertDictEqual(self.config, self.container.to_dict()) def test_raises_exception_when_no_schema_set(self): self.container.set_schema(None) self.assertRaises(RuntimeError, lambda: self.container.to_dict(mask_secrets=True)) def test_returns_dict_with_masked_secrets(self): d = self.container.to_dict(mask_secrets=True) self.assertEqual(d['a'], self.config['a']) self.assertNotEqual(d['b'], self.config['b']) self.assertEqual(self.config['b'], self.container['b'])
class TestConfigurationToJson(TestCase): def setUp(self): self.config = {'a': 1, 'b': 'test'} self.container = ConfigurationContainer(self.config, configuration_schema) def test_returns_plain_dict(self): self.assertDictEqual(self.config, self.container.to_dict()) def test_raises_exception_when_no_schema_set(self): self.container.set_schema(None) self.assertRaises(RuntimeError, lambda: self.container.to_dict(mask_secrets=True)) def test_returns_dict_with_masked_secrets(self): d = self.container.to_dict(mask_secrets=True) self.assertEqual(d['a'], self.config['a']) self.assertNotEqual(d['b'], self.config['b']) self.assertEqual(self.config['b'], self.container['b'])
def test_doesnt_leave_leftovers(self): container = ConfigurationContainer( {"a": 1, "b": "test", "e": 3}, configuration_schema ) new_config = container.to_dict(mask_secrets=True) new_config.pop("e") container.update(new_config) self.assertEqual(container["a"], 1) self.assertEqual("test", container["b"]) self.assertNotIn("e", container)
class TestConfigurationUpdate(TestCase): def setUp(self): self.config = {'a': 1, 'b': 'test'} self.container = ConfigurationContainer(self.config, configuration_schema) def test_rejects_invalid_new_config(self): self.assertRaises(ValidationError, lambda: self.container.update({'c': 3})) def test_fails_if_no_schema_set(self): self.container.set_schema(None) self.assertRaises(RuntimeError, lambda: self.container.update({'c': 3})) def test_ignores_secret_placehodler(self): self.container.update(self.container.to_dict(mask_secrets=True)) self.assertEqual(self.container['b'], self.config['b']) def test_updates_secret(self): new_config = {'a': 2, 'b': 'new'} self.container.update(new_config) self.assertDictEqual(self.container._config, new_config) def test_doesnt_leave_leftovers(self): container = ConfigurationContainer({ 'a': 1, 'b': 'test', 'e': 3 }, configuration_schema) new_config = container.to_dict(mask_secrets=True) new_config.pop('e') container.update(new_config) self.assertEqual(container['a'], 1) self.assertEqual('test', container['b']) self.assertNotIn('e', container) def test_works_for_schema_without_secret(self): secretless = configuration_schema.copy() secretless.pop('secret') container = ConfigurationContainer({ 'a': 1, 'b': 'test', 'e': 3 }, secretless) container.update({'a': 2}) self.assertEqual(container['a'], 2)
class TestConfigurationUpdate(TestCase): def setUp(self): self.config = {"a": 1, "b": "test"} self.container = ConfigurationContainer(self.config, configuration_schema) def test_rejects_invalid_new_config(self): self.assertRaises(ValidationError, lambda: self.container.update({"c": 3})) def test_fails_if_no_schema_set(self): self.container.set_schema(None) self.assertRaises(RuntimeError, lambda: self.container.update({"c": 3})) def test_ignores_secret_placehodler(self): self.container.update(self.container.to_dict(mask_secrets=True)) self.assertEqual(self.container["b"], self.config["b"]) def test_updates_secret(self): new_config = {"a": 2, "b": "new"} self.container.update(new_config) self.assertDictEqual(self.container._config, new_config) def test_doesnt_leave_leftovers(self): container = ConfigurationContainer( {"a": 1, "b": "test", "e": 3}, configuration_schema ) new_config = container.to_dict(mask_secrets=True) new_config.pop("e") container.update(new_config) self.assertEqual(container["a"], 1) self.assertEqual("test", container["b"]) self.assertNotIn("e", container) def test_works_for_schema_without_secret(self): secretless = configuration_schema.copy() secretless.pop("secret") container = ConfigurationContainer({"a": 1, "b": "test", "e": 3}, secretless) container.update({"a": 2}) self.assertEqual(container["a"], 2)