Exemplo n.º 1
0
    def test_comparison(self):
        d = ObjectDict()
        d.bar = {'prop': 'value'}
        d.foo = 3

        # should compare like a normal dict
        self.assertEqual(d, {'foo': 3, 'bar': {'prop': 'value'}})
Exemplo n.º 2
0
    def test_cross_setting(self):
        d = ObjectDict()

        # Set one way
        d['bar'] = 4
        d.far = 5
        # Read the other
        self.assertEqual(d.bar, 4)
        self.assertEqual(d['far'], 5)
Exemplo n.º 3
0
    def test_nested_attributes(self):
        d = ObjectDict()

        # set var to a dict, which should auto convert to ObjectDict
        d.bar = {'prop': 'value'}
        self.assertIsInstance(d.bar, ObjectDict)

        # test Reading
        self.assertEqual(d.bar.prop, 'value')

        # test partial setting
        d.bar.prop = 'newer'
        self.assertEqual(d.bar.prop, 'newer')
Exemplo n.º 4
0
    def test_extraction_list(self):
        d = ObjectDict({'foo': 0, 'bar': [{'x': 1, 'y': 2}, {'x': 3, 'y': 4}]})

        self.assertTrue(isinstance(d.bar, list))

        self.assertEqual([getattr(x, 'x') for x in d.bar], [1, 3])
        self.assertEqual([getattr(x, 'y') for x in d.bar], [2, 4])
Exemplo n.º 5
0
    def test_missing_entry(self):
        d = ObjectDict()

        with self.assertRaises(KeyError):
            d['bar']

        # This should be attribute, not key error
        with self.assertRaises(AttributeError):
            d.bar
Exemplo n.º 6
0
 def __init__(self, *args, **kwargs):
     super().__init__(*args, **kwargs)
     self.config = ObjectDict()
Exemplo n.º 7
0
 def test_dir(self):
     d = ObjectDict({'a': 15, 'b': [[{'c': "foo"}]]})
     self.assertIn('a', dir(d))
     self.assertIn('b', dir(d))
     self.assertNotIn('c', dir(d))
     self.assertIn('c', dir(d.b[0][0]))
Exemplo n.º 8
0
 def test_constructor_multiple_lists(self):
     d = ObjectDict({'a': 15, 'b': [[{'c': "foo"}]]})
     self.assertEqual(d.b[0][0].c, 'foo')
     self.assertIsInstance(d.b[0][0], ObjectDict)
Exemplo n.º 9
0
 def test_constructor_dict(self):
     d = ObjectDict(foo=3, bar=dict(x=1, y=2))
     self.assertEqual(d.foo, 3)
     self.assertEqual(d.bar.x, 1)
     self.assertIsInstance(d.bar, ObjectDict)
Exemplo n.º 10
0
 def test_extraction_empty_list(self):
     d = ObjectDict()
     self.assertEqual(list(d.keys()), [])
Exemplo n.º 11
0
 def test_dict_constructor(self):
     a = {'a': 1}
     self.assertEqual(ObjectDict(**a), a)
Exemplo n.º 12
0
    def test_constructor_corner_case(self):
        self.assertEqual(ObjectDict({}), {})
        self.assertEqual(ObjectDict(), {})

        with self.assertRaises(TypeError):
            ObjectDict({'a': 1}, {'b': 5})
Exemplo n.º 13
0
 def test_set_index(self):
     d = ObjectDict()
     d['bar'] = 4
     self.assertEqual(d['bar'], 4)
Exemplo n.º 14
0
 def test_set_attribute(self):
     d = ObjectDict()
     d.far = 5
     self.assertEqual(d.far, 5)
Exemplo n.º 15
0
 def test_basic(self):
     d = ObjectDict({'foo': 3})
     self.assertEqual(d.foo, 3)
     self.assertEqual(d['foo'], 3)