def test_attr_get(self): class Record (object): __slots__ = ('slot1', '__dict__') def __init__(self, **kwds): for k, v in kwds.items(): setattr(self, k, v) @property def prop1(self): return 'a property' r = Record(slot1=42, attr1='a') self.assertEqual(KeyValueCoding.getKey(r, 'slot1'), 42) self.assertEqual(KeyValueCoding.getKey(r, 'attr1'), 'a') self.assertEqual(KeyValueCoding.getKey(r, 'prop1'), 'a property') self.assertEqual(KeyValueCoding.getKeyPath(r, 'slot1'), 42) self.assertEqual(KeyValueCoding.getKeyPath(r, 'attr1'), 'a') self.assertEqual(KeyValueCoding.getKeyPath(r, 'prop1'), 'a property') r = Record(attr1=Record(attr2='b', attr3=[Record(a=1), Record(a=2, b='b')])) self.assertRaises(KeyError, KeyValueCoding.getKey, r, 'slot1') self.assertRaises(KeyError, KeyValueCoding.getKey, r, 'attr99') self.assertRaises(KeyError, KeyValueCoding.getKeyPath, r, 'slot1') self.assertRaises(KeyError, KeyValueCoding.getKeyPath, r, 'attr99') self.assertEqual(KeyValueCoding.getKeyPath(r, 'attr1.attr2'), 'b') self.assertEqual(KeyValueCoding.getKeyPath(r, 'attr1.attr3.a'), [1, 2]) self.assertEqual(KeyValueCoding.getKeyPath(r, 'attr1.attr3.b'), [null, 'b']) self.assertRaises(KeyError, KeyValueCoding.getKeyPath, r, 'attr3') self.assertRaises(KeyError, KeyValueCoding.getKeyPath, r, 'attr1.attr9')
def test_cocoa_get(self): r = objc.lookUpClass('NSObject').alloc().init() self.assertEqual(KeyValueCoding.getKey(r, 'description'), r.description()) self.assertEqual(KeyValueCoding.getKeyPath(r, 'description'), r.description()) self.assertEqual(KeyValueCoding.getKeyPath(r, 'description.length'), len(r.description())) self.assertRaises(KeyError, KeyValueCoding.getKey, r, 'nosuchattr') self.assertRaises(KeyError, KeyValueCoding.getKeyPath, r, 'description.nosuchattr')
def test_attr_get(self): class Record(object): __slots__ = ("slot1", "__dict__") def __init__(self, **kwds): for k, v in kwds.items(): setattr(self, k, v) @property def prop1(self): return "a property" r = Record(slot1=42, attr1="a") self.assertEqual(KeyValueCoding.getKey(r, "slot1"), 42) self.assertEqual(KeyValueCoding.getKey(r, "attr1"), "a") self.assertEqual(KeyValueCoding.getKey(r, "prop1"), "a property") self.assertEqual(KeyValueCoding.getKeyPath(r, "slot1"), 42) self.assertEqual(KeyValueCoding.getKeyPath(r, "attr1"), "a") self.assertEqual(KeyValueCoding.getKeyPath(r, "prop1"), "a property") r = Record( attr1=Record(attr2="b", attr3=[Record( a=1), Record(a=2, b="b")])) self.assertRaises(KeyError, KeyValueCoding.getKey, r, "slot1") self.assertRaises(KeyError, KeyValueCoding.getKey, r, "attr99") self.assertRaises(KeyError, KeyValueCoding.getKeyPath, r, "slot1") self.assertRaises(KeyError, KeyValueCoding.getKeyPath, r, "attr99") self.assertEqual(KeyValueCoding.getKeyPath(r, "attr1.attr2"), "b") self.assertEqual(KeyValueCoding.getKeyPath(r, "attr1.attr3.a"), [1, 2]) self.assertEqual(KeyValueCoding.getKeyPath(r, "attr1.attr3.b"), [null, "b"]) self.assertRaises(KeyError, KeyValueCoding.getKeyPath, r, "attr3") self.assertRaises(KeyError, KeyValueCoding.getKeyPath, r, "attr1.attr9")
def test_none_get(self): self.assertEqual(KeyValueCoding.getKey(None, "a"), None) self.assertEqual(KeyValueCoding.getKeyPath(None, "a"), None)
def test_accessor_get(self): class Object(object): def get_attr1(self): return "attr1" def getAttr1(self): return "Attr1" def attr1(self): return ".attr1" def get_attr2(self): return "attr2" def attr2(self): return ".attr2" def attr3(self): return ".attr3" def isAttr4(self): return "attr4?" @objc.selector def attrsel(self): return "selattr" r = Object() self.assertEqual(KeyValueCoding.getKey(r, "attr1"), "Attr1") self.assertEqual(KeyValueCoding.getKey(r, "attr2"), "attr2") self.assertEqual(KeyValueCoding.getKey(r, "attr3"), ".attr3") self.assertEqual(KeyValueCoding.getKey(r, "attr4"), "attr4?") self.assertEqual(KeyValueCoding.getKey(r, "attrsel"), "selattr") t = Object() o = objc.lookUpClass("NSObject").alloc().init() lst = [] r.attr5 = t.isAttr4 r.attr6 = o.description r.attr7 = lst.__len__ r.attr8 = os.getpid r.attr9 = "attribute 9" self.assertEqual(KeyValueCoding.getKey(r, "attr5"), t.isAttr4) self.assertEqual(KeyValueCoding.getKey(r, "attr6"), r.attr6) self.assertEqual(KeyValueCoding.getKey(r, "attr7"), lst.__len__) self.assertEqual(KeyValueCoding.getKey(r, "attr8"), os.getpid()) self.assertEqual(KeyValueCoding.getKey(r, "attr9"), "attribute 9") self.assertEqual(KeyValueCoding.getKey(1.5, "hex"), (1.5).hex())
def test_array_get(self): lst = [{"a": 1, "b": 2}, {"a": 2}] self.assertEqual(KeyValueCoding.getKey(lst, "a"), [1, 2]) self.assertEqual(KeyValueCoding.getKey(lst, "b"), [2, null])
def test_dict_get(self): d = {"a": 1} self.assertEqual(KeyValueCoding.getKey(d, "a"), 1) self.assertRaises(KeyError, KeyValueCoding.getKey, d, "b")
def handler(self,event): try: self._queue.put([self._name,KeyValueCoding.getKey(event,"keyCode")]) except KeyboardInterrupt: AppHelper.stopEventLoop()
def test_none_get(self): self.assertEqual(KeyValueCoding.getKey(None, 'a'), None) self.assertEqual(KeyValueCoding.getKeyPath(None, 'a'), None)
def test_accessor_get(self): class Object (object): def get_attr1(self): return "attr1" def getAttr1(self): return "Attr1" def attr1(self): return ".attr1" def get_attr2(self): return "attr2" def attr2(self): return '.attr2' def attr3(self): return '.attr3' def isAttr4(self): return "attr4?" @objc.selector def attrsel(self): return 'selattr' r = Object() self.assertEqual(KeyValueCoding.getKey(r, 'attr1'), 'Attr1') self.assertEqual(KeyValueCoding.getKey(r, 'attr2'), 'attr2') self.assertEqual(KeyValueCoding.getKey(r, 'attr3'), '.attr3') self.assertEqual(KeyValueCoding.getKey(r, 'attr4'), 'attr4?') self.assertEqual(KeyValueCoding.getKey(r, 'attrsel'), 'selattr') t = Object() o = objc.lookUpClass('NSObject').alloc().init() l = [] r.attr5 = t.isAttr4 r.attr6 = o.description r.attr7 = l.__len__ r.attr8 = os.getpid r.attr9 = 'attribute 9' self.assertEqual(KeyValueCoding.getKey(r, 'attr5'), t.isAttr4) self.assertEqual( KeyValueCoding.getKey(r, 'attr6'), r.attr6) self.assertEqual(KeyValueCoding.getKey(r, 'attr7'), l.__len__) self.assertEqual(KeyValueCoding.getKey(r, 'attr8'), os.getpid()) self.assertEqual(KeyValueCoding.getKey(r, 'attr9'), 'attribute 9') self.assertEqual(KeyValueCoding.getKey(1.5, 'hex'), (1.5).hex())
def test_dict_get(self): d = {'a': 1} self.assertEqual(KeyValueCoding.getKey(d, 'a'), 1) self.assertRaises(KeyError, KeyValueCoding.getKey, d, 'b')
def test_array_get(self): l = [{'a': 1, 'b':2 }, {'a':2} ] self.assertEqual(KeyValueCoding.getKey(l, 'a'), [1, 2]) self.assertEqual(KeyValueCoding.getKey(l, 'b'), [2, null])
def test_dict_get(self): d = {'a':1 } self.assertEqual(KeyValueCoding.getKey(d, 'a'), 1) self.assertRaises(KeyError, KeyValueCoding.getKey, d, 'b')
def test_accessor_get(self): class Object(object): def get_attr1(self): return "attr1" def getAttr1(self): return "Attr1" def attr1(self): return ".attr1" def get_attr2(self): return "attr2" def attr2(self): return '.attr2' def attr3(self): return '.attr3' def isAttr4(self): return "attr4?" @objc.selector def attrsel(self): return 'selattr' r = Object() self.assertEqual(KeyValueCoding.getKey(r, 'attr1'), 'Attr1') self.assertEqual(KeyValueCoding.getKey(r, 'attr2'), 'attr2') self.assertEqual(KeyValueCoding.getKey(r, 'attr3'), '.attr3') self.assertEqual(KeyValueCoding.getKey(r, 'attr4'), 'attr4?') self.assertEqual(KeyValueCoding.getKey(r, 'attrsel'), 'selattr') t = Object() o = objc.lookUpClass('NSObject').alloc().init() l = [] r.attr5 = t.isAttr4 r.attr6 = o.description r.attr7 = l.__len__ r.attr8 = os.getpid r.attr9 = 'attribute 9' self.assertEqual(KeyValueCoding.getKey(r, 'attr5'), t.isAttr4) self.assertEqual(KeyValueCoding.getKey(r, 'attr6'), r.attr6) self.assertEqual(KeyValueCoding.getKey(r, 'attr7'), l.__len__) self.assertEqual(KeyValueCoding.getKey(r, 'attr8'), os.getpid()) self.assertEqual(KeyValueCoding.getKey(r, 'attr9'), 'attribute 9') self.assertEqual(KeyValueCoding.getKey(1.5, 'hex'), (1.5).hex())
def test_array_get(self): l = [{'a': 1, 'b': 2}, {'a': 2}] self.assertEqual(KeyValueCoding.getKey(l, 'a'), [1, 2]) self.assertEqual(KeyValueCoding.getKey(l, 'b'), [2, null])