예제 #1
0
    def test_conflicting_keys(self):
        # top level
        before = {"foo": "ERW", "BAR": 123, "Bar": {'a': 1}}
        with raises(ValueError) as e:
            to_lowercase_keys(before)

        # nested
        before = {"foo": "ERW", "BAR": 123, "Bdfd": {'a': 1, 'A': 23}}
        with raises(ValueError) as e:
            to_lowercase_keys(before)
예제 #2
0
    def _config_getter(self, config):
        config = to_lowercase_keys(config)

        def getter(*keys, **kwargs):
            keys = [k.lower() for k in keys]
            return afconfig.get_config_value(
                config,
                *keys,
                fail_on_missing_key=not kwargs.get('allow_missing'))

        return getter
예제 #3
0
 def test(self):
     before = {
         "foo": "ERW",
         "BAR": 123,
         "BaZ": {
             'a': [
                 "SDF", {
                     "C": 123,
                     "d": [{
                         "asd": True,
                         "SDFSDF": 1
                     }],
                     "blueskykml_config": {
                         "CaseShouldBePreserved": {
                             "FooBar": 234
                         }
                     }
                 }
             ]
         }
     }
     before_copy = copy.deepcopy(before)  # to make sure not done in place
     expected_after = {
         "foo": "ERW",
         "bar": 123,
         "baz": {
             'a': [
                 "SDF",  # not a key, so should remain uppercase
                 {
                     "c": 123,
                     "d": [{
                         "asd": True,
                         "sdfsdf": 1
                     }],
                     "blueskykml_config": {
                         "CaseShouldBePreserved": {
                             "FooBar": 234
                         }
                     }
                 }
             ]
         }
     }
     assert expected_after == to_lowercase_keys(before_copy)
     assert before == before_copy