def test_all(self): path = ['A', 'B', '..', '\.\\ww'] for sep in 'AB.w': key = encode_safe_key(path, sep) _path = decode_safe_key(key, sep) self.assertListEqual(path, _path)
def test_decode(self): key = 'A\.B\.C\.www.xxx.com' sep = '.' path = decode_safe_key(key, sep) self.assertEqual(path[0], 'A') self.assertEqual(path[1], 'B') self.assertEqual(path[2], 'C') self.assertEqual(path[3], 'www.xxx.com')
def restore(expobj, separator='.', safe=False): leafs = [] if PY3: items = expobj.items() else: items = expobj.iteritems() for key, value in items: if safe: path = decode_safe_key(key, separator) else: path = key.split(separator) if key == '': path = [] leafs.append((path, value)) origin = from_leaf(leafs) return origin