def test_attribute_access(self): v = object() o = KeyValueCoding.kvc(v) o.key o.key2 getattr(o, "key3.key4") self.assertEqual(self._trace, [ ('get', v, 'key'), ('get', v, 'key2'), ('get', v, 'key3.key4'), ]) self._trace[:] = [] o.key = 42 setattr(o, "key3.key4", 99) self.assertEqual(self._trace, [ ('set', v, 'key', 42), ('set', v, 'key3.key4', 99), ]) self._trace[:] = [] class Object (object): pass v = Object() o = KeyValueCoding.kvc(v) o.key = 42 o._key = 99 self.assertEqual(self._trace, [ ('set', v, 'key', 42), ]) self.assertEqual(o._key, 99) self.assertIn('_key', o.__dict__) self.assertNotIn('key', o.__dict__)
def test_attribute_access(self): v = object() o = KeyValueCoding.kvc(v) o.key o.key2 getattr(o, "key3.key4") self.assertEqual( self._trace, [("get", v, "key"), ("get", v, "key2"), ("get", v, "key3.key4")], ) self._trace[:] = [] o.key = 42 setattr(o, "key3.key4", 99) self.assertEqual(self._trace, [("set", v, "key", 42), ("set", v, "key3.key4", 99)]) self._trace[:] = [] class Object(object): pass v = Object() o = KeyValueCoding.kvc(v) o.key = 42 o._key = 99 self.assertEqual(self._trace, [("set", v, "key", 42)]) self.assertEqual(o._key, 99) self.assertIn("_key", o.__dict__) self.assertNotIn("key", o.__dict__)
def test_attribute_access(self): v = object() o = KeyValueCoding.kvc(v) o.key o.key2 getattr(o, "key3.key4") self.assertEqual(self._trace, [ ('get', v, 'key'), ('get', v, 'key2'), ('get', v, 'key3.key4'), ]) self._trace[:] = [] o.key = 42 setattr(o, "key3.key4", 99) self.assertEqual(self._trace, [ ('set', v, 'key', 42), ('set', v, 'key3.key4', 99), ]) self._trace[:] = [] class Object(object): pass v = Object() o = KeyValueCoding.kvc(v) o.key = 42 o._key = 99 self.assertEqual(self._trace, [ ('set', v, 'key', 42), ]) self.assertEqual(o._key, 99) self.assertIn('_key', o.__dict__) self.assertNotIn('key', o.__dict__)
def test_item_access(self): v = object() o = KeyValueCoding.kvc(v) o['key'] o['key2'] o['key3.key4'] self.assertEqual(self._trace, [ ('get-path', v, 'key'), ('get-path', v, 'key2'), ('get-path', v, 'key3.key4'), ]) self._trace[:] = [] o["key"] = 42 o["key3.key4"] = 99 self.assertEqual(self._trace, [ ('set-path', v, 'key', 42), ('set-path', v, 'key3.key4', 99), ]) self._trace[:] = [] self.assertRaises(TypeError, operator.getitem, o, 42) self.assertRaises(TypeError, operator.setitem, o, 42, 99)
def test_item_access(self): v = object() o = KeyValueCoding.kvc(v) o["key"] o["key2"] o["key3.key4"] self.assertEqual( self._trace, [ ("get-path", v, "key"), ("get-path", v, "key2"), ("get-path", v, "key3.key4"), ], ) self._trace[:] = [] o["key"] = 42 o["key3.key4"] = 99 self.assertEqual(self._trace, [("set-path", v, "key", 42), ("set-path", v, "key3.key4", 99)]) self._trace[:] = [] self.assertRaises(TypeError, operator.getitem, o, 42) self.assertRaises(TypeError, operator.setitem, o, 42, 99)
def test_repr(self): for o in [object(), 42, "42", b"42"]: self.assertEqual(repr(KeyValueCoding.kvc(o)), repr(o))
def test_repr(self): for o in [ object(), 42, "42", b"42", b"42".decode('latin1') ]: self.assertEqual(repr(KeyValueCoding.kvc(o)), repr(o))