def test_dict_in_constructor(self): ad_dict = AdJson(self._test_json) self.assertIsInstance(ad_dict['a'], AdJson)
def test_init_from_zip(self): keys = ['a'] values = [42] items = zip(keys, values) d = AdJson(items) self.assertEqual(d.a, 42)
def test_update_with_args_and_kwargs(self): expected = {'a': 1, 'b': 2} org = AdJson() org.update({'a': 3, 'b': 2}, a=1) self.assert_ad_json_equal(org, expected)
def test_update_with_multiple_args(self): org = AdJson() def update(): org.update({'a': 2}, {'a': 1}) self.assertRaises(TypeError, update)
def test_tuple_key(self): ad_json = AdJson() ad_json[(1, 2)] = 2 self.assert_ad_json_equal(ad_json, {(1, 2): 2}) self.assertEqual(ad_json[(1, 2)], 2)
def test_update_with_kws(self): org = AdJson(one=1, two=2) someother = AdJson(one=3) someother.update(one=1, two=2) self.assert_ad_json_equal(org, someother)
def test_delattr_nested(self): ad_json = AdJson(self._test_json) del ad_json.a.b.c self.assert_ad_json_equal(ad_json, {'a': {'b': {}}})
def test_empty_getitem(self): ad_json = AdJson() ad_json.a.b.c self.assert_ad_json_equal(ad_json, {})
def test_delitem_nested(self): ad_json = AdJson(self._test_json) del ad_json['a']['b']['c'] self.assert_ad_json_equal(ad_json, {'a': {'b': {}}})
def test_delattr(self): ad_json = AdJson({'a': 2}) del ad_json.a self.assert_ad_json_equal(ad_json, {})
def test_delitem(self): ad_json = AdJson({'a': 2}) del ad_json['a'] self.assert_ad_json_equal(ad_json, {})
def test_str(self): ad_json = AdJson(self._test_json) self.assertEqual(str(ad_json), str(self._test_json))
def test_getattr(self): ad_json = AdJson(self._test_json) self.assertEqual(ad_json.a.b.c, self._test_list)
def test_set_one_level_item(self): som_json = {'a': self._test_list} ad_json = AdJson() ad_json['a'] = self._test_list self.assert_ad_json_equal(ad_json, som_json)
def test_delitem_delattr(self): ad_json = AdJson(self._test_json) del ad_json.a['b'] self.assert_ad_json_equal(ad_json, {'a': {}})
def test_zero_key(self): ad_json = AdJson() ad_json[0].a = 10 expect = {0: {"a": 10}} self.assert_ad_json_equal(ad_json, expect)
def test_getitem(self): ad_json = AdJson(self._test_json) self.assertEqual(ad_json['a']['b']['c'], self._test_list)