def test_init_only_allows_mapping_items(self):
     with self.assertRaises(AssertionError):
         ro_types.ReadOnlyWrapperDict([])
     with self.assertRaises(AssertionError):
         ro_types.ReadOnlyWrapperDict(1)
     with self.assertRaises(AssertionError):
         ro_types.ReadOnlyWrapperDict("Hello")
     ro_types.ReadOnlyWrapperDict({})
     ro_types.ReadOnlyWrapperDict(collections.OrderedDict())
 def test_encode_structure(self):
     a = collections.OrderedDict([('a', 1), ('b', 2), ('c', lambda: 3)])
     b = [1, 2, 3]
     c = lambda: 4
     aa = ro_types.ReadOnlyDict(a)
     bb = ro_types.ReadOnlyList(b)
     cc = ro_types.Callable(c)
     x = collections.OrderedDict([('x', aa), ('y', bb), ('z', cc)])
     xx = ro_types.ReadOnlyWrapperDict(x)
     self.assertEqual(
         ro_types.ContextJSONEncoder(
             **ro_types.JSON_ENCODE_OPTIONS).encode(xx),
         '{"x":{"a":1,"b":2,"c":"3"},"y":[1,2,3],"z":4}')
 def test_init_copies_items(self):
     d = {'a': 1, 'b': 2}
     x = ro_types.ReadOnlyWrapperDict(d)
     d['a'] = 3
     self.assertEqual(x['a'], 1)
 def test_serialize(self):
     x = ro_types.ReadOnlyWrapperDict(
         collections.OrderedDict([('a', 1), ('b', 2)]))
     # self.assertEqual(x.__serialize__(), '{"a":1,"b":2}')
     self.assertEqual(x.__serialize__(), {"a": 1, "b": 2})
 def test_repr(self):
     x = ro_types.ReadOnlyWrapperDict({'a': 1})
     self.assertEqual(repr(x), "ReadOnlyWrapperDict({'a': 1})")
 def test_str(self):
     x = ro_types.ReadOnlyWrapperDict({'a': 1})
     self.assertEqual(str(x), "{'a': 1}")
 def test_len(self):
     x = ro_types.ReadOnlyWrapperDict({'a': 1, 'b': 2})
     self.assertEqual(len(x), 2)
 def test_iter(self):
     x = ro_types.ReadOnlyWrapperDict(
         collections.OrderedDict([('a', 1), ('b', 2)]))
     self.assertEqual(list(x.items()), [('a', 1), ('b', 2)])
 def test_setitem(self):
     with self.assertRaises(TypeError):
         x = ro_types.ReadOnlyWrapperDict({'a': 1, 'b': 2})
         x['hello'] = 1
Пример #10
0
 def test_setattr(self):
     with self.assertRaises(TypeError):
         x = ro_types.ReadOnlyWrapperDict({'a': 1, 'b': 2})
         x.hello = 1
Пример #11
0
 def test_getattr_not_an_item(self):
     x = ro_types.ReadOnlyWrapperDict({'a': 1})
     with self.assertRaises(AttributeError):
         x.b
Пример #12
0
 def test_getattr(self):
     x = ro_types.ReadOnlyWrapperDict({'a': 1, 'b': 2})
     self.assertEqual(x.a, 1)
     self.assertEqual(x.b, 2)
Пример #13
0
 def test_getitem(self):
     x = ro_types.ReadOnlyWrapperDict({'a': 1, 'b': 2})
     self.assertEqual(x['a'], 1)
     self.assertEqual(x['b'], 2)