Ejemplo n.º 1
0
    def testValueForKeyPath(self):
        o = KeyValueClass1Explicit.alloc().init()
        o.addMultiple()

        self.assertEqual(
            STUB.keyValue_forObject_key_(1, o, b"multiple".decode("ascii")),
            o._values["multiple"],
        )
        self.assertEqual(
            STUB.keyValue_forObject_key_(1, o,
                                         b"multiple.level2".decode("ascii")),
            o._values["multiple"]._values["level2"],
        )
        self.assertEqual(
            STUB.keyValue_forObject_key_(
                1, o, b"multiple.level2.level3.keyA".decode("ascii")),
            o._values["multiple"]._values["level2"]._values["level3"].
            _values["keyA"],
        )
        self.assertEqual(
            STUB.keyValue_forObject_key_(
                1, o, b"multiple.level2.level3.keyB".decode("ascii")),
            o._values["multiple"]._values["level2"]._values["level3"].
            _values["keyB"],
        )

        self.assertRaises(
            KeyError,
            STUB.keyValue_forObject_key_,
            1,
            o,
            b"multiple.level2.nokey".decode("ascii"),
        )
Ejemplo n.º 2
0
        def testKVO2(self):
            """
            Check if observations work for python-based keys on ObjC classes
            """
            observer = KeyValueObserver.alloc().init()
            self.assertEqual(observer.observed, [])

            o = KeyValueClass1.alloc().init()

            o.addObserver_forKeyPath_options_context_(observer,
                                                      b"key3".decode("ascii"),
                                                      0, 0)
            try:
                STUB.setKeyValue_forObject_key_value_(2, o,
                                                      b"key3".decode("ascii"),
                                                      b"drie".decode("ascii"))
                self.assertEqual(o.key3, b"drie".decode("ascii"))

                self.assertEqual(len(observer.observed), 1)

                keyPath, object, change = observer.observed[0]
                self.assertEqual(keyPath, b"key3".decode("ascii"))
                self.assertIs(object, o)
                self.assertEqual(change, {NSKeyValueChangeKindKey: 1})

            finally:
                o.removeObserver_forKeyPath_(observer, b"key3".decode("ascii"))
Ejemplo n.º 3
0
        def testKVO3(self):
            """
            Check if observations work for python-based keys on ObjC classes
            """
            observer = KeyValueObserver.alloc().init()
            self.assertEqual(observer.observed, [])

            o = KeyValueClass1.alloc().init()
            STUB.setKeyValue_forObject_key_value_(2, o,
                                                  b'key3'.decode('ascii'),
                                                  b'three'.decode('ascii'))

            o.addObserver_forKeyPath_options_context_(
                observer, b"key3".decode('ascii'),
                NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld, 0)
            try:
                STUB.setKeyValue_forObject_key_value_(2, o,
                                                      b'key3'.decode('ascii'),
                                                      b'drie'.decode('ascii'))
                self.assertEqual(o.key3, b"drie".decode('ascii'))

                self.assertEqual(len(observer.observed), 1)

                keyPath, object, change = observer.observed[0]
                self.assertEqual(keyPath, b"key3".decode('ascii'))
                self.assert_(object is o)
                self.assertEqual(
                    change, {
                        NSKeyValueChangeKindKey: 1,
                        NSKeyValueChangeNewKey: b'drie'.decode('ascii'),
                        NSKeyValueChangeOldKey: b'three'.decode('ascii')
                    })

            finally:
                o.removeObserver_forKeyPath_(observer, b'key3'.decode('ascii'))
Ejemplo n.º 4
0
    def testBytes(self):
        r = PyObjC_TestClass3.makeDataWithBytes_method_(MyData3, 1)
        b = PyObjC_TestClass3.getBytes_(r)
        self.assertEquals(str(b.bytes()), 'hello world')

        self.assertEquals(b.getBytes_length_(None, 4), 'hell')
        self.assertEquals(b.getBytes_range_(None, NSRange(2, 4)), 'llo ')
Ejemplo n.º 5
0
        def testKVO3(self):
            """
            Check if observations work for python-based keys on ObjC classes
            """
            observer = KeyValueObserver.alloc().init()
            self.assertEquals(observer.observed, [])

            o = KeyValueClass1.alloc().init()
            STUB.setKeyValue_forObject_key_value_(2, o, u'key3', u'three')

            o.addObserver_forKeyPath_options_context_(observer, u"key3",
                    NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld,
                    0)
            try:
                STUB.setKeyValue_forObject_key_value_(2, o, u'key3', u'drie')
                self.assertEquals(o.key3, u"drie")

                self.assertEquals(len(observer.observed), 1)

                keyPath, object, change = observer.observed[0]
                self.assertEquals(keyPath, u"key3")
                self.assert_(object is o)
                self.assertEquals(change,
                    {
                        NSKeyValueChangeKindKey:1,
                        NSKeyValueChangeNewKey:u'drie',
                        NSKeyValueChangeOldKey:u'three'
                    })

            finally:
                o.removeObserver_forKeyPath_(observer, u'key3')
Ejemplo n.º 6
0
        def testKVO3(self):
            """
            Check if observations work for python-based keys on ObjC classes
            """
            observer = KeyValueObserver.alloc().init()
            self.assertEqual(observer.observed, [])

            o = KeyValueClass1.alloc().init()
            STUB.setKeyValue_forObject_key_value_(2, o, b'key3'.decode('ascii'), b'three'.decode('ascii'))

            o.addObserver_forKeyPath_options_context_(observer, b"key3".decode('ascii'),
                    NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld,
                    0)
            try:
                STUB.setKeyValue_forObject_key_value_(2, o, b'key3'.decode('ascii'), b'drie'.decode('ascii'))
                self.assertEqual(o.key3, b"drie".decode('ascii'))

                self.assertEqual(len(observer.observed), 1)

                keyPath, object, change = observer.observed[0]
                self.assertEqual(keyPath, b"key3".decode('ascii'))
                self.assert_(object is o)
                self.assertEqual(change,
                    {
                        NSKeyValueChangeKindKey:1,
                        NSKeyValueChangeNewKey:b'drie'.decode('ascii'),
                        NSKeyValueChangeOldKey:b'three'.decode('ascii')
                    })

            finally:
                o.removeObserver_forKeyPath_(observer, b'key3'.decode('ascii'))
Ejemplo n.º 7
0
    def testTakeValueForKeyPath(self):
        o = KeyValueClass1Explicit.alloc().init()
        o.addMultiple()

        self.assertEqual(
            o._values["multiple"]._values["level2"]._values["level3"].
            _values["keyA"],
            "hello",
        )
        self.assertEqual(
            o._values["multiple"]._values["level2"]._values["level3"].
            _values["keyB"],
            "world",
        )

        STUB.setKeyValue_forObject_key_value_(1, o,
                                              "multiple.level2.level3.keyA",
                                              "KeyAValue")
        self.assertEqual(
            o._values["multiple"]._values["level2"]._values["level3"].
            _values["keyA"],
            "KeyAValue",
        )

        STUB.setKeyValue_forObject_key_value_(1, o,
                                              "multiple.level2.level3.keyB",
                                              9.999)
        self.assertEqual(
            o._values["multiple"]._values["level2"]._values["level3"].
            _values["keyB"],
            9.999,
        )
Ejemplo n.º 8
0
    def testTakeValuesFromDictionary(self):
        o = KeyValueClass1.alloc().init()

        self.assertEqual(o.key3, 3)
        self.assertEqual(o._key4, b"4".decode("ascii"))
        o.key5 = 1
        self.assertNotHasAttr(o, b"key9".decode("ascii"))

        STUB.setKeyValue_forObject_key_value_(
            3,
            o,
            None,
            {
                b"key3".decode("ascii"): b"drie".decode("ascii"),
                b"key4".decode("ascii"): b"vier".decode("ascii"),
                b"key5".decode("ascii"): b"V".decode("ascii"),
                b"key9".decode("ascii"): b"IX".decode("ascii"),
            },
        )

        self.assertEqual(o.key3, b"drie".decode("ascii"))
        self.assertEqual(o._key4, b"viervierviervier".decode("ascii"))
        self.assertEqual(o.key5, b"VVVVV".decode("ascii"))
        self.assertHasAttr(o, b"key9".decode("ascii"))
        self.assertEqual(o.key9, b"IX".decode("ascii"))
Ejemplo n.º 9
0
        def testKVO3(self):
            """
            Check if observations work for python-based keys on ObjC classes
            """
            observer = KeyValueObserver.alloc().init()
            self.assertEquals(observer.observed, [])

            o = KeyValueClass1.alloc().init()
            STUB.setKeyValue_forObject_key_value_(2, o, u'key3', u'three')

            o.addObserver_forKeyPath_options_context_(
                observer, u"key3",
                NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld, 0)
            try:
                STUB.setKeyValue_forObject_key_value_(2, o, u'key3', u'drie')
                self.assertEquals(o.key3, u"drie")

                self.assertEquals(len(observer.observed), 1)

                keyPath, object, change = observer.observed[0]
                self.assertEquals(keyPath, u"key3")
                self.assert_(object is o)
                self.assertEquals(
                    change, {
                        NSKeyValueChangeKindKey: 1,
                        NSKeyValueChangeNewKey: u'drie',
                        NSKeyValueChangeOldKey: u'three'
                    })

            finally:
                o.removeObserver_forKeyPath_(observer, u'key3')
Ejemplo n.º 10
0
    def testBytes(self):
        r = PyObjC_TestClass3.makeDataWithBytes_method_(MyData3, 1)
        b = PyObjC_TestClass3.getBytes_(r)
        self.assertEquals(str(b.bytes()), 'hello world')

        self.assertEquals(b.getBytes_length_(None, 4), 'hell')
        self.assertEquals(b.getBytes_range_(None, NSRange(2, 4)), 'llo ')
Ejemplo n.º 11
0
    def testTakeValuesFromDictionary(self):
        o = KeyValueClass1Explicit.alloc().init()

        self.assertEqual(o._values["key3"], 3)
        self.assertEqual(o._values["key4"], b"4".decode("ascii"))
        o._values["key5"] = 1
        self.assertNotIn("key9", o._values)

        STUB.setKeyValue_forObject_key_value_(
            3,
            o,
            None,
            {
                b"key3".decode("ascii"): b"drie".decode("ascii"),
                b"key4".decode("ascii"): b"vier".decode("ascii"),
                b"key5".decode("ascii"): b"V".decode("ascii"),
                b"key9".decode("ascii"): b"IX".decode("ascii"),
            },
        )

        self.assertEqual(o._values["key3"], b"drie".decode("ascii"))
        self.assertEqual(o._values["key4"],
                         b"viervierviervier".decode("ascii"))
        self.assertEqual(o._values["key5"], b"VVVVV".decode("ascii"))
        self.assertEqual(o._values["key9"], b"IX".decode("ascii"))
Ejemplo n.º 12
0
    def testStoredValueForKey2(self):
        o = KeyValueClass4.alloc().init()

        self.assertEqual(STUB.keyValue_forObject_key_(2, o, "foo"), "foobar")
        self.assertEqual(STUB.keyValue_forObject_key_(2, o, "bar"),
                         "foobarfoobar")
        self.assertEqual(STUB.keyValue_forObject_key_(2, o, "roprop"),
                         "read-only")
Ejemplo n.º 13
0
    def testTakeValueForKey2(self):
        o = KeyValueClass4.alloc().init()

        self.assertEqual(o.foo, b"foobar".decode('ascii'))
        STUB.setKeyValue_forObject_key_value_(0, o, b'foo'.decode('ascii'), b'FOO'.decode('ascii'))
        self.assertEqual(o.foo, b"FOO".decode('ascii'))

        self.assertRaises(KeyError, STUB.setKeyValue_forObject_key_value_, 0, o, b'key9'.decode('ascii'), b'IX'.decode('ascii'))
Ejemplo n.º 14
0
    def testTakeValueForKey2(self):
        o = KeyValueClass4.alloc().init()

        self.assertEquals(o.foo, u"foobar")
        STUB.setKeyValue_forObject_key_value_(0, o, u'foo', u'FOO')
        self.assertEquals(o.foo, u"FOO")

        self.assertRaises(KeyError, STUB.setKeyValue_forObject_key_value_, 0, o, u'key9', u'IX')
Ejemplo n.º 15
0
    def testTakeValueForKey2(self):
        o = KeyValueClass4.alloc().init()

        self.assertEqual(o.foo, "foobar")
        STUB.setKeyValue_forObject_key_value_(0, o, "foo", "FOO")
        self.assertEqual(o.foo, "FOO")

        self.assertRaises(KeyError, STUB.setKeyValue_forObject_key_value_, 0,
                          o, "key9", "IX")
Ejemplo n.º 16
0
    def testValueForKey2(self):
        o = KeyValueClass4.alloc().init()

        self.assertEquals(STUB.keyValue_forObject_key_(0, o, u"foo"),
                          u"foobar")
        self.assertEquals(STUB.keyValue_forObject_key_(0, o, u"bar"),
                          u"foobarfoobar")
        self.assertEquals(STUB.keyValue_forObject_key_(0, o, u"roprop"),
                          u"read-only")
Ejemplo n.º 17
0
    def testTakeValuesFromDictionary2(self):
        o = KeyValueClass4.alloc().init()

        self.assertEquals(o.foo, u"foobar")
        STUB.setKeyValue_forObject_key_value_(3, o, None, { u'foo': u'FOO' })
        self.assertEquals(o.foo, u"FOO")

        self.assertRaises(KeyError, STUB.setKeyValue_forObject_key_value_, 3, o, None, { u'key9':  u'IX' })
        self.assertRaises(KeyError, STUB.setKeyValue_forObject_key_value_, 3, o, None, { u'roprop':  u'IX' })
Ejemplo n.º 18
0
    def testTakeValuesFromDictionary2(self):
        o = KeyValueClass4.alloc().init()

        self.assertEqual(o.foo, b"foobar".decode('ascii'))
        STUB.setKeyValue_forObject_key_value_(3, o, None, { b'foo'.decode('ascii'): b'FOO'.decode('ascii') })
        self.assertEqual(o.foo, b"FOO".decode('ascii'))

        self.assertRaises(KeyError, STUB.setKeyValue_forObject_key_value_, 3, o, None, { b'key9'.decode('ascii'):  b'IX'.decode('ascii') })
        self.assertRaises(KeyError, STUB.setKeyValue_forObject_key_value_, 3, o, None, { b'roprop'.decode('ascii'):  b'IX'.decode('ascii') })
Ejemplo n.º 19
0
    def testTakeValueForKey2(self):
        o = KeyValueClass4.alloc().init()

        self.assertEquals(o.foo, u"foobar")
        STUB.setKeyValue_forObject_key_value_(0, o, u'foo', u'FOO')
        self.assertEquals(o.foo, u"FOO")

        self.assertRaises(KeyError, STUB.setKeyValue_forObject_key_value_, 0,
                          o, u'key9', u'IX')
Ejemplo n.º 20
0
    def testTakeValuesFromDictionary2(self):
        o = KeyValueClass4.alloc().init()

        self.assertEquals(o.foo, u"foobar")
        STUB.setKeyValue_forObject_key_value_(3, o, None, {u'foo': u'FOO'})
        self.assertEquals(o.foo, u"FOO")

        self.assertRaises(KeyError, STUB.setKeyValue_forObject_key_value_, 3,
                          o, None, {u'key9': u'IX'})
        self.assertRaises(KeyError, STUB.setKeyValue_forObject_key_value_, 3,
                          o, None, {u'roprop': u'IX'})
Ejemplo n.º 21
0
    def testStoredValueForKey(self):
        o = KeyValueClass1.alloc().init()
        o.addMultiple()

        self.assertEqual(STUB.keyValue_forObject_key_(2, o, b"key1".decode('ascii')), 1)
        self.assertEqual(STUB.keyValue_forObject_key_(2, o, b"key2".decode('ascii')), 2)
        self.assertEqual(STUB.keyValue_forObject_key_(2, o, b"key3".decode('ascii')), 3)
        self.assertEqual(STUB.keyValue_forObject_key_(2, o, b"key4".decode('ascii')), "4")
        self.assertEqual(STUB.keyValue_forObject_key_(2, o, b"multiple".decode('ascii')), o.multiple)

        self.assertRaises(KeyError, STUB.keyValue_forObject_key_, 2, o, b"nokey".decode('ascii'))
Ejemplo n.º 22
0
    def testStoredValueForKey(self):
        o = KeyValueClass1Explicit.alloc().init()
        o.addMultiple()

        self.assertEquals(STUB.keyValue_forObject_key_(2, o, u"key1"), 1)
        self.assertEquals(STUB.keyValue_forObject_key_(2, o, u"key2"), 2)
        self.assertEquals(STUB.keyValue_forObject_key_(2, o, u"key3"), 3)
        self.assertEquals(STUB.keyValue_forObject_key_(2, o, u"key4"), "4")
        self.assertEquals(STUB.keyValue_forObject_key_(2, o, u"multiple"), o._values['multiple'])

        self.assertRaises(KeyError, STUB.keyValue_forObject_key_, 2, o, u"nokey")
Ejemplo n.º 23
0
    def testStoredValueForKey(self):
        o = KeyValueClass1Explicit.alloc().init()
        o.addMultiple()

        self.assertEqual(STUB.keyValue_forObject_key_(2, o, b"key1".decode('ascii')), 1)
        self.assertEqual(STUB.keyValue_forObject_key_(2, o, b"key2".decode('ascii')), 2)
        self.assertEqual(STUB.keyValue_forObject_key_(2, o, b"key3".decode('ascii')), 3)
        self.assertEqual(STUB.keyValue_forObject_key_(2, o, b"key4".decode('ascii')), "4")
        self.assertEqual(STUB.keyValue_forObject_key_(2, o, b"multiple".decode('ascii')), o._values['multiple'])

        self.assertRaises(KeyError, STUB.keyValue_forObject_key_, 2, o, b"nokey".decode('ascii'))
Ejemplo n.º 24
0
    def testValueForKeyPath(self):
        o = KeyValueClass1Explicit.alloc().init()
        o.addMultiple()

        self.assertEquals(STUB.keyValue_forObject_key_(1, o, u"multiple"), o._values['multiple'])
        self.assertEquals(STUB.keyValue_forObject_key_(1, o, u"multiple.level2"), o._values['multiple']._values['level2'])
        self.assertEquals(STUB.keyValue_forObject_key_(1, o, u"multiple.level2.level3.keyA"),
            o._values['multiple']._values['level2']._values['level3']._values['keyA'])
        self.assertEquals(STUB.keyValue_forObject_key_(1, o, u"multiple.level2.level3.keyB"),
            o._values['multiple']._values['level2']._values['level3']._values['keyB'])

        self.assertRaises(KeyError, STUB.keyValue_forObject_key_, 1, o, u"multiple.level2.nokey")
Ejemplo n.º 25
0
    def testStoredValueForKey2(self):
        o = KeyValueClass4.alloc().init()

        self.assertEqual(
            STUB.keyValue_forObject_key_(2, o, b"foo".decode('ascii')),
            b"foobar".decode('ascii'))
        self.assertEqual(
            STUB.keyValue_forObject_key_(2, o, b"bar".decode('ascii')),
            b"foobarfoobar".decode('ascii'))
        self.assertEqual(
            STUB.keyValue_forObject_key_(2, o, b"roprop".decode('ascii')),
            b"read-only".decode('ascii'))
Ejemplo n.º 26
0
    def testTakeValueForKeyPath(self):
        o = KeyValueClass1Explicit.alloc().init()
        o.addMultiple()

        self.assertEqual(o._values['multiple']._values['level2']._values['level3']._values['keyA'], b"hello".decode('ascii'))
        self.assertEqual(o._values['multiple']._values['level2']._values['level3']._values['keyB'], b"world".decode('ascii'))

        STUB.setKeyValue_forObject_key_value_(1, o, b"multiple.level2.level3.keyA".decode('ascii'), b"KeyAValue".decode('ascii'))
        self.assertEqual(o._values['multiple']._values['level2']._values['level3']._values['keyA'], b"KeyAValue".decode('ascii'))

        STUB.setKeyValue_forObject_key_value_(1, o, b"multiple.level2.level3.keyB".decode('ascii'), 9.999)
        self.assertEqual(o._values['multiple']._values['level2']._values['level3']._values['keyB'], 9.999)
Ejemplo n.º 27
0
    def testTakeValueForKeyPath(self):
        o = KeyValueClass1.alloc().init()
        o.addMultiple()

        self.assertEquals(o.multiple.level2.level3.keyA, u"hello")
        self.assertEquals(o.multiple.level2.level3.keyB, u"world")

        STUB.setKeyValue_forObject_key_value_(1, o, u"multiple.level2.level3.keyA", u"KeyAValue")
        self.assertEquals(o.multiple.level2.level3.keyA, u"KeyAValue")

        STUB.setKeyValue_forObject_key_value_(1, o, u"multiple.level2.level3.keyB", 9.999)
        self.assertEquals(o.multiple.level2.level3.keyB, 9.999)
Ejemplo n.º 28
0
    def testTakeValueForKeyPath(self):
        o = KeyValueClass1Explicit.alloc().init()
        o.addMultiple()

        self.assertEquals(o._values['multiple']._values['level2']._values['level3']._values['keyA'], u"hello")
        self.assertEquals(o._values['multiple']._values['level2']._values['level3']._values['keyB'], u"world")

        STUB.setKeyValue_forObject_key_value_(1, o, u"multiple.level2.level3.keyA", u"KeyAValue")
        self.assertEquals(o._values['multiple']._values['level2']._values['level3']._values['keyA'], u"KeyAValue")

        STUB.setKeyValue_forObject_key_value_(1, o, u"multiple.level2.level3.keyB", 9.999)
        self.assertEquals(o._values['multiple']._values['level2']._values['level3']._values['keyB'], 9.999)
Ejemplo n.º 29
0
    def testValueForKeyPath(self):
        o = KeyValueClass1Explicit.alloc().init()
        o.addMultiple()

        self.assertEqual(STUB.keyValue_forObject_key_(1, o, b"multiple".decode('ascii')), o._values['multiple'])
        self.assertEqual(STUB.keyValue_forObject_key_(1, o, b"multiple.level2".decode('ascii')), o._values['multiple']._values['level2'])
        self.assertEqual(STUB.keyValue_forObject_key_(1, o, b"multiple.level2.level3.keyA".decode('ascii')),
            o._values['multiple']._values['level2']._values['level3']._values['keyA'])
        self.assertEqual(STUB.keyValue_forObject_key_(1, o, b"multiple.level2.level3.keyB".decode('ascii')),
            o._values['multiple']._values['level2']._values['level3']._values['keyB'])

        self.assertRaises(KeyError, STUB.keyValue_forObject_key_, 1, o, b"multiple.level2.nokey".decode('ascii'))
Ejemplo n.º 30
0
    def testValueForKeyPath(self):
        o = KeyValueClass1.alloc().init()
        o.addMultiple()

        self.assertEquals(STUB.keyValue_forObject_key_(1, o, u"multiple"), o.multiple)
        self.assertEquals(STUB.keyValue_forObject_key_(1, o, u"multiple.level2"), o.multiple.level2)
        self.assertEquals(STUB.keyValue_forObject_key_(1, o, u"multiple.level2.level3.keyA"),
            o.multiple.level2.level3.keyA)
        self.assertEquals(STUB.keyValue_forObject_key_(1, o, u"multiple.level2.level3.keyB"),
            o.multiple.level2.level3.keyB)

        self.assertRaises(KeyError, STUB.keyValue_forObject_key_, 1, o, u"multiple.level2.nokey")
Ejemplo n.º 31
0
    def testValueForKey(self):
        o = KeyValueClass1Explicit.alloc().init()
        o.addMultiple()

        self.assertEqual(STUB.keyValue_forObject_key_(0, o, b"key1".decode('ascii')), 1)

        self.assertEqual(STUB.keyValue_forObject_key_(0, o, b"key2".decode('ascii')), 2)
        self.assertEqual(STUB.keyValue_forObject_key_(0, o, b"key3".decode('ascii')), 3)
        self.assertEqual(STUB.keyValue_forObject_key_(0, o, b"key4".decode('ascii')), "4")
        self.assertEqual(STUB.keyValue_forObject_key_(0, o, b"multiple".decode('ascii')), o._values['multiple'])

        self.assertRaises(KeyError, STUB.keyValue_forObject_key_, 0, o, b"nokey".decode('ascii'))
Ejemplo n.º 32
0
    def testBytes(self):
        r = PyObjC_TestClass3.makeDataWithBytes_method_(MyData3, 1)
        b = PyObjC_TestClass3.getBytes_(r)

        # Check for memoryview
        if isinstance(b.bytes(), memoryview):
            self.assertEqual(b.bytes().tobytes(), b'hello world')
        else:
            self.assertEqual(bytes(b.bytes()), b'hello world')

        self.assertEqual(b.getBytes_length_(None, 4), b'hell')
        self.assertEqual(b.getBytes_range_(None, NSRange(2, 4)), b'llo ')
Ejemplo n.º 33
0
    def testBytes(self):
        r = PyObjC_TestClass3.makeDataWithBytes_method_(MyData3, 1)
        b = PyObjC_TestClass3.getBytes_(r)

        # Check for memoryview
        if isinstance(b.bytes(), memoryview):
            self.assertEqual(b.bytes().tobytes(), b'hello world')
        else:
            self.assertEqual(bytes(b.bytes()), b'hello world')

        self.assertEqual(b.getBytes_length_(None, 4), b'hell')
        self.assertEqual(b.getBytes_range_(None, NSRange(2, 4)), b'llo ')
Ejemplo n.º 34
0
    def testValueForKeyPath(self):
        o = KeyValueClass1.alloc().init()
        o.addMultiple()

        self.assertEqual(STUB.keyValue_forObject_key_(1, o, b"multiple".decode('ascii')), o.multiple)
        self.assertEqual(STUB.keyValue_forObject_key_(1, o, b"multiple.level2".decode('ascii')), o.multiple.level2)
        self.assertEqual(STUB.keyValue_forObject_key_(1, o, b"multiple.level2.level3.keyA".decode('ascii')),
            o.multiple.level2.level3.keyA)
        self.assertEqual(STUB.keyValue_forObject_key_(1, o, b"multiple.level2.level3.keyB".decode('ascii')),
            o.multiple.level2.level3.keyB)

        self.assertRaises(KeyError, STUB.keyValue_forObject_key_, 1, o, b"multiple.level2.nokey".decode('ascii'))
Ejemplo n.º 35
0
    def testStoredValueForKey(self):
        o = KeyValueClass1.alloc().init()
        o.addMultiple()

        self.assertEquals(STUB.keyValue_forObject_key_(2, o, u"key1"), 1)
        self.assertEquals(STUB.keyValue_forObject_key_(2, o, u"key2"), 2)
        self.assertEquals(STUB.keyValue_forObject_key_(2, o, u"key3"), 3)
        self.assertEquals(STUB.keyValue_forObject_key_(2, o, u"key4"), "4")
        self.assertEquals(STUB.keyValue_forObject_key_(2, o, u"multiple"),
                          o.multiple)

        self.assertRaises(KeyError, STUB.keyValue_forObject_key_, 2, o,
                          u"nokey")
Ejemplo n.º 36
0
    def testTakeValueForKey(self):
        o = KeyValueClass1Explicit.alloc().init()

        self.assertEqual(o._values['key3'], 3)
        STUB.setKeyValue_forObject_key_value_(0, o, b'key3'.decode('ascii'),
                                              b'drie'.decode('ascii'))
        self.assertEqual(o._values['key3'], b"drie".decode('ascii'))

        self.assertEqual(o._values['key4'], b"4".decode('ascii'))
        STUB.setKeyValue_forObject_key_value_(0, o, b'key4'.decode('ascii'),
                                              b'vier'.decode('ascii'))
        self.assert_(not hasattr(o, b"key4".decode('ascii')))
        self.assertEqual(o._values['key4'],
                         b"viervierviervier".decode('ascii'))

        o._values['key5'] = 1
        STUB.setKeyValue_forObject_key_value_(0, o, b'key5'.decode('ascii'),
                                              b'V'.decode('ascii'))
        self.assertEqual(o._values['key5'], b"VVVVV".decode('ascii'))

        self.assert_(not hasattr(o, b'key9'.decode('ascii')))
        self.assert_('key9' not in o._values)
        STUB.setKeyValue_forObject_key_value_(0, o, b'key9'.decode('ascii'),
                                              b'IX'.decode('ascii'))
        self.assert_(not hasattr(o, b'key9'.decode('ascii')))
        self.assert_('key9' in o._values)
        self.assertEqual(o._values['key9'], b'IX'.decode('ascii'))
Ejemplo n.º 37
0
    def testValueForKey(self):
        o = KeyValueClass1Explicit.alloc().init()
        o.addMultiple()

        self.assertEquals(STUB.keyValue_forObject_key_(0, o, u"key1"), 1)

        self.assertEquals(STUB.keyValue_forObject_key_(0, o, u"key2"), 2)
        self.assertEquals(STUB.keyValue_forObject_key_(0, o, u"key3"), 3)
        self.assertEquals(STUB.keyValue_forObject_key_(0, o, u"key4"), "4")
        self.assertEquals(STUB.keyValue_forObject_key_(0, o, u"multiple"),
                          o._values['multiple'])

        self.assertRaises(KeyError, STUB.keyValue_forObject_key_, 0, o,
                          u"nokey")
Ejemplo n.º 38
0
    def testTakeValueForKey(self):
        o = KeyValueClass1Explicit.alloc().init()

        self.assertEqual(o._values["key3"], 3)
        STUB.setKeyValue_forObject_key_value_(0, o, b"key3".decode("ascii"),
                                              b"drie".decode("ascii"))
        self.assertEqual(o._values["key3"], b"drie".decode("ascii"))

        self.assertEqual(o._values["key4"], b"4".decode("ascii"))
        STUB.setKeyValue_forObject_key_value_(0, o, b"key4".decode("ascii"),
                                              b"vier".decode("ascii"))
        self.assertNotHasAttr(o, b"key4".decode("ascii"))
        self.assertEqual(o._values["key4"],
                         b"viervierviervier".decode("ascii"))

        o._values["key5"] = 1
        STUB.setKeyValue_forObject_key_value_(0, o, b"key5".decode("ascii"),
                                              b"V".decode("ascii"))
        self.assertEqual(o._values["key5"], b"VVVVV".decode("ascii"))

        self.assertNotHasAttr(o, b"key9".decode("ascii"))
        self.assertNotIn("key9", o._values)
        STUB.setKeyValue_forObject_key_value_(0, o, b"key9".decode("ascii"),
                                              b"IX".decode("ascii"))
        self.assertNotHasAttr(o, b"key9".decode("ascii"))
        self.assertIn("key9", o._values)
        self.assertEqual(o._values["key9"], b"IX".decode("ascii"))
Ejemplo n.º 39
0
    def testDictWithObjects(self):
        o = PyObjC_TestClass3.makeDictFromClass_method_(MyDictionary2, 0)

        self.assert_(isinstance(o, tuple))
        self.assertEquals(o[2], 4)
        self.assertEquals(len(o[1]), 4)
        self.assertEquals(len(o[0]), 4)
Ejemplo n.º 40
0
    def testInitWithObjects(self):
        o = PyObjC_TestClass3.makeDictFromClass_method_(MyDictionary1, 1)

        self.assert_(isinstance(o, MyDictionary1))
        self.assertEquals(o._count, 4)
        self.assertEquals(len(o._keys), 4)
        self.assertEquals(len(o._objects), 4)
Ejemplo n.º 41
0
    def testTakeValueForKeyPath(self):
        o = KeyValueClass1.alloc().init()
        o.addMultiple()

        self.assertEquals(o.multiple.level2.level3.keyA, u"hello")
        self.assertEquals(o.multiple.level2.level3.keyB, u"world")

        STUB.setKeyValue_forObject_key_value_(1, o,
                                              u"multiple.level2.level3.keyA",
                                              u"KeyAValue")
        self.assertEquals(o.multiple.level2.level3.keyA, u"KeyAValue")

        STUB.setKeyValue_forObject_key_value_(1, o,
                                              u"multiple.level2.level3.keyB",
                                              9.999)
        self.assertEquals(o.multiple.level2.level3.keyB, 9.999)
Ejemplo n.º 42
0
    def testTakeValueForKey2(self):
        o = KeyValueClass4.alloc().init()

        self.assertEqual(o.foo, b"foobar".decode("ascii"))
        STUB.setKeyValue_forObject_key_value_(0, o, b"foo".decode("ascii"),
                                              b"FOO".decode("ascii"))
        self.assertEqual(o.foo, b"FOO".decode("ascii"))

        self.assertRaises(
            KeyError,
            STUB.setKeyValue_forObject_key_value_,
            0,
            o,
            b"key9".decode("ascii"),
            b"IX".decode("ascii"),
        )
Ejemplo n.º 43
0
    def testDictWithObjects(self):
        o = PyObjC_TestClass3.makeDictFromClass_method_(MyDictionary2, 0)

        self.assertIsInstance(o, tuple)
        self.assertEqual(o[2], 4)
        self.assertEqual(len(o[1]), 4)
        self.assertEqual(len(o[0]), 4)
Ejemplo n.º 44
0
    def testValuesForKeys(self):
        o = KeyValueClass1Explicit.alloc().init()

        self.assertEqual(
            STUB.keyValue_forObject_key_(
                3,
                o,
                [
                    b"key1".decode("ascii"),
                    b"key2".decode("ascii"),
                    b"key3".decode("ascii"),
                    b"key4".decode("ascii"),
                ],
            ),
            {
                b"key1".decode("ascii"): 1,
                b"key2".decode("ascii"): 2,
                b"key3".decode("ascii"): 3,
                b"key4".decode("ascii"): b"4".decode("ascii"),
            },
        )

        self.assertRaises(
            KeyError,
            STUB.keyValue_forObject_key_,
            3,
            o,
            [
                b"key1".decode("ascii"),
                b"key3".decode("ascii"),
                b"nosuchkey".decode("ascii"),
            ],
        )
Ejemplo n.º 45
0
    def testInitWithObjects(self):
        o = PyObjC_TestClass3.makeDictFromClass_method_(MyDictionary1, 1)

        self.assertIsInstance(o, MyDictionary1)
        self.assertEqual(o._count, 4)
        self.assertEqual(len(o._keys), 4)
        self.assertEqual(len(o._objects), 4)
Ejemplo n.º 46
0
    def testTakeValuesFromDictionary(self):
        o = KeyValueClass1Explicit.alloc().init()

        self.assertEqual(o._values['key3'], 3)
        self.assertEqual(o._values['key4'], b"4".decode('ascii'))
        o._values['key5'] = 1
        self.assert_('key9' not in o._values)

        STUB.setKeyValue_forObject_key_value_(3, o, None,
            {
                b'key3'.decode('ascii'): b'drie'.decode('ascii'),
                b'key4'.decode('ascii'): b'vier'.decode('ascii'),
                b'key5'.decode('ascii'): b'V'.decode('ascii'),
                b'key9'.decode('ascii'): b'IX'.decode('ascii'),
            })

        self.assertEqual(o._values['key3'], b"drie".decode('ascii'))
        self.assertEqual(o._values['key4'], b"viervierviervier".decode('ascii'))
        self.assertEqual(o._values['key5'], b"VVVVV".decode('ascii'))
        self.assertEqual(o._values['key9'], b'IX'.decode('ascii'))
Ejemplo n.º 47
0
    def testTakeValuesFromDictionary(self):
        o = KeyValueClass1Explicit.alloc().init()

        self.assertEquals(o._values['key3'], 3)
        self.assertEquals(o._values['key4'], u"4")
        o._values['key5'] = 1
        self.assert_('key9' not in o._values)

        STUB.setKeyValue_forObject_key_value_(3, o, None,
            {
                u'key3': u'drie',
                u'key4': u'vier',
                u'key5': u'V',
                u'key9': u'IX',
            })

        self.assertEquals(o._values['key3'], u"drie")
        self.assertEquals(o._values['key4'], u"viervierviervier")
        self.assertEquals(o._values['key5'], u"VVVVV")
        self.assertEquals(o._values['key9'], u'IX')
Ejemplo n.º 48
0
    def testTakeValuesFromDictionary(self):
        o = KeyValueClass1.alloc().init()

        self.assertEqual(o.key3, 3)
        self.assertEqual(o._key4, b"4".decode('ascii'))
        o.key5 = 1
        self.assert_(not hasattr(o, b'key9'.decode('ascii')))

        STUB.setKeyValue_forObject_key_value_(3, o, None,
            {
                b'key3'.decode('ascii'): b'drie'.decode('ascii'),
                b'key4'.decode('ascii'): b'vier'.decode('ascii'),
                b'key5'.decode('ascii'): b'V'.decode('ascii'),
                b'key9'.decode('ascii'): b'IX'.decode('ascii'),
            })

        self.assertEqual(o.key3, b"drie".decode('ascii'))
        self.assertEqual(o._key4, b"viervierviervier".decode('ascii'))
        self.assertEqual(o.key5, b"VVVVV".decode('ascii'))
        self.assert_(hasattr(o, b'key9'.decode('ascii')))
        self.assertEqual(o.key9, b'IX'.decode('ascii'))
Ejemplo n.º 49
0
    def testTakeValuesFromDictionary(self):
        o = KeyValueClass1.alloc().init()

        self.assertEquals(o.key3, 3)
        self.assertEquals(o._key4, u"4")
        o.key5 = 1
        self.assert_(not hasattr(o, u'key9'))

        STUB.setKeyValue_forObject_key_value_(3, o, None,
            {
                u'key3': u'drie',
                u'key4': u'vier',
                u'key5': u'V',
                u'key9': u'IX',
            })

        self.assertEquals(o.key3, u"drie")
        self.assertEquals(o._key4, u"viervierviervier")
        self.assertEquals(o.key5, u"VVVVV")
        self.assert_(hasattr(o, u'key9'))
        self.assertEquals(o.key9, u'IX')
Ejemplo n.º 50
0
    def testTakeStoredValueForKey(self):
        o = KeyValueClass1Explicit.alloc().init()

        self.assertEquals(o._values['key3'], 3)
        STUB.setKeyValue_forObject_key_value_(2, o, u'key3', u'drie')
        self.assertEquals(o._values['key3'], u"drie")

        self.assertEquals(o._values['key4'], u"4")
        STUB.setKeyValue_forObject_key_value_(2, o, u'key4', u'vier')
        self.assertEquals(o._values['key4'], u"viervierviervier")

        o.key5 = 1
        STUB.setKeyValue_forObject_key_value_(2, o, u'key5', u'V')
        self.assertEquals(o._values['key5'], u"VVVVV")

        self.assert_('key9' not in o._values)
        STUB.setKeyValue_forObject_key_value_(2, o, u'key9', u'IX')
        self.assert_('key9' in o._values)
        self.assertEquals(o._values['key9'], u'IX')
Ejemplo n.º 51
0
    def testTakeStoredValueForKey(self):
        o = KeyValueClass1.alloc().init()

        self.assertEqual(o.key3, 3)
        STUB.setKeyValue_forObject_key_value_(2, o, b'key3'.decode('ascii'), b'drie'.decode('ascii'))
        self.assertEqual(o.key3, b"drie".decode('ascii'))

        self.assertEqual(o._key4, b"4".decode('ascii'))
        STUB.setKeyValue_forObject_key_value_(2, o, b'key4'.decode('ascii'), b'vier'.decode('ascii'))
        self.assertEqual(o._key4, b"viervierviervier".decode('ascii'))

        o.key5 = 1
        STUB.setKeyValue_forObject_key_value_(2, o, b'key5'.decode('ascii'), b'V'.decode('ascii'))
        self.assertEqual(o.key5, b"VVVVV".decode('ascii'))

        self.assert_(not hasattr(o, b'key9'.decode('ascii')))
        STUB.setKeyValue_forObject_key_value_(2, o, b'key9'.decode('ascii'), b'IX'.decode('ascii'))
        self.assert_(hasattr(o, b'key9'.decode('ascii')))
        self.assertEqual(o.key9, b'IX'.decode('ascii'))
Ejemplo n.º 52
0
    def testTakeStoredValueForKey(self):
        o = KeyValueClass1Explicit.alloc().init()

        self.assertEqual(o._values['key3'], 3)
        STUB.setKeyValue_forObject_key_value_(2, o, b'key3'.decode('ascii'), b'drie'.decode('ascii'))
        self.assertEqual(o._values['key3'], b"drie".decode('ascii'))

        self.assertEqual(o._values['key4'], b"4".decode('ascii'))
        STUB.setKeyValue_forObject_key_value_(2, o, b'key4'.decode('ascii'), b'vier'.decode('ascii'))
        self.assertEqual(o._values['key4'], b"viervierviervier".decode('ascii'))

        o.key5 = 1
        STUB.setKeyValue_forObject_key_value_(2, o, b'key5'.decode('ascii'), b'V'.decode('ascii'))
        self.assertEqual(o._values['key5'], b"VVVVV".decode('ascii'))

        self.assert_('key9' not in o._values)
        STUB.setKeyValue_forObject_key_value_(2, o, b'key9'.decode('ascii'), b'IX'.decode('ascii'))
        self.assert_('key9' in o._values)
        self.assertEqual(o._values['key9'], b'IX'.decode('ascii'))
Ejemplo n.º 53
0
    def testTakeStoredValueForKey(self):
        o = KeyValueClass1.alloc().init()

        self.assertEquals(o.key3, 3)
        STUB.setKeyValue_forObject_key_value_(2, o, u'key3', u'drie')
        self.assertEquals(o.key3, u"drie")

        self.assertEquals(o._key4, u"4")
        STUB.setKeyValue_forObject_key_value_(2, o, u'key4', u'vier')
        self.assertEquals(o._key4, u"viervierviervier")

        o.key5 = 1
        STUB.setKeyValue_forObject_key_value_(2, o, u'key5', u'V')
        self.assertEquals(o.key5, u"VVVVV")

        self.assert_(not hasattr(o, u'key9'))
        STUB.setKeyValue_forObject_key_value_(2, o, u'key9', u'IX')
        self.assert_(hasattr(o, u'key9'))
        self.assertEquals(o.key9, u'IX')
Ejemplo n.º 54
0
    def testValueForKey(self):
        o = KeyValueClass1.alloc().init()
        o.addMultiple()

        self.assertEqual(STUB.keyValue_forObject_key_(0, o, b"key1".decode('ascii')), 1)

        self.assertEqual(STUB.keyValue_forObject_key_(0, o, b"key2".decode('ascii')), 2)
        self.assertEqual(STUB.keyValue_forObject_key_(0, o, b"key3".decode('ascii')), 3)
        self.assertEqual(STUB.keyValue_forObject_key_(0, o, b"key4".decode('ascii')), "4")
        self.assertEqual(STUB.keyValue_forObject_key_(0, o, b"multiple".decode('ascii')), o.multiple)

        self.assertRaises(KeyError, STUB.keyValue_forObject_key_, 0, o, b"nokey".decode('ascii'))

        self.assertRaises(ValueError, STUB.keyValue_forObject_key_, 0, o,
                b"keyRaisingValueError".decode('ascii'))
        self.assertRaises(KeyError, STUB.keyValue_forObject_key_, 0, o,
                b"keyRaisingNSUnknownKeyException".decode('ascii'))
        self.assertRaises(KeyError, STUB.keyValue_forObject_key_, 0, o,
                b"keyReturningSameSelector".decode('ascii'))

        obj = STUB.keyValue_forObject_key_( 0, o, b"keyReturningOtherSelector".decode('ascii'))
        self.assertIsInstance(obj, objc.selector)
        self.assertEqual(obj.selector, b"getKey1")
        self.assertIs(obj.self, o )
Ejemplo n.º 55
0
    def testValueForKey(self):
        o = KeyValueClass1.alloc().init()
        o.addMultiple()

        self.assertEquals(STUB.keyValue_forObject_key_(0, o, u"key1"), 1)

        self.assertEquals(STUB.keyValue_forObject_key_(0, o, u"key2"), 2)
        self.assertEquals(STUB.keyValue_forObject_key_(0, o, u"key3"), 3)
        self.assertEquals(STUB.keyValue_forObject_key_(0, o, u"key4"), "4")
        self.assertEquals(STUB.keyValue_forObject_key_(0, o, u"multiple"), o.multiple)

        self.assertRaises(KeyError, STUB.keyValue_forObject_key_, 0, o, u"nokey")

        self.assertRaises(ValueError, STUB.keyValue_forObject_key_, 0, o,
                u"keyRaisingValueError")
        self.assertRaises(KeyError, STUB.keyValue_forObject_key_, 0, o,
                u"keyRaisingNSUnknownKeyException")
        self.assertRaises(KeyError, STUB.keyValue_forObject_key_, 0, o,
                u"keyReturningSameSelector")

        obj = STUB.keyValue_forObject_key_( 0, o, u"keyReturningOtherSelector")
        self.failUnless( isinstance(obj, objc.selector) )
        self.assertEquals(obj.selector, "getKey1")
        self.failUnless( obj.self is o )
Ejemplo n.º 56
0
    def testValuesForKeys(self):
        o = KeyValueClass1Explicit.alloc().init()

        self.assertEquals(STUB.keyValue_forObject_key_(3, o, [u"key1", u"key2", u"key3", u"key4"]), { u"key1":1, u"key2":2, u"key3": 3, u"key4": u"4"} )

        self.assertRaises(KeyError, STUB.keyValue_forObject_key_, 3, o, [u"key1", u"key3", u"nosuchkey"])
Ejemplo n.º 57
0
    def testStoredValueForKey2(self):
        o = KeyValueClass4.alloc().init()

        self.assertEquals(STUB.keyValue_forObject_key_(2, o, u"foo"), u"foobar")
        self.assertEquals(STUB.keyValue_forObject_key_(2, o, u"bar"), u"foobarfoobar")
        self.assertEquals(STUB.keyValue_forObject_key_(2, o, u"roprop"), u"read-only")