예제 #1
0
    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)
예제 #3
0
 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)
예제 #4
0
    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)
예제 #5
0
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)
예제 #6
0
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)
예제 #7
0
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)
예제 #8
0
 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)
예제 #9
0
 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)