예제 #1
0
def test_base():
    dic = CaseInsensitiveDict()
    dic['a'] = 4
    dic[8] = 5
    assert dic['a'] == 4
    assert dic['A'] == 4
    assert dic[8] == 5
예제 #2
0
 def _hierarchical_dict_from_dict(dict_obj):
     val_dict = {}
     for key, value in dict_obj.items():
         key = key.lower()
         if SEP in key:
             key_tuple = key.split(SEP)
         else:
             key_tuple = [key]
         val_dict[key] = value
         put_nested_val(val_dict, key_tuple, value)
     return CaseInsensitiveDict.from_dict(val_dict)
예제 #3
0
 def _build_val_dict(self):
     val_dict = CaseInsensitiveDict()
     for path in self._cfg_fpaths():
         val_dict.update(**self._read_cfg_file(path))
     val_dict.update(**self._read_env_vars())
     val_dict = Birch._hierarchical_dict_from_dict(val_dict)
     return val_dict
예제 #4
0
 def _build_val_dict(self):
     val_dict = CaseInsensitiveDict()
     if self._defaults is not None:
         val_dict = self._build_defaults_dict(self._defaults)
     for path in self._cfg_fpaths():
         if os.path.isfile(path):
             val_dict.update(**self._read_cfg_file(path))
             if not self.load_all:
                 break
     val_dict.update(**self._read_env_vars())
     val_dict = Birch._hierarchical_dict_from_dict(val_dict)
     return val_dict
예제 #5
0
 def _build_defaults_dict(self, defaults):
     val_dict = CaseInsensitiveDict()
     for key, value in defaults.items():
         new_key = key
         try:
             new_key = new_key.upper()
         except AttributeError:
             raise ValueError((
                 "Birch does not support non-string keys! "
                 "{} provided as key!".format(key)
             ))
         if new_key[:self._root_len2] == self._root2:
             new_key = new_key[self._root_len2:]
         elif new_key[:self._root_len1] == self._root1:
             new_key = new_key[self._root_len1:]
         val_dict[new_key] = value
     val_dict = Birch._hierarchical_dict_from_dict(val_dict)
     return val_dict
예제 #6
0
def test_from_dict():
    dic = CaseInsensitiveDict.from_dict(REG_EXAMPLE)
    assert dic['a'] == 4
    assert dic['A'] == 4
    assert dic['c']['G'] == 8
    assert dic['C'][2] == 1