Example #1
0
    def test_torture_profile(self):
        import time
        total_time = 0
        print("")
        object_ = Everything.TestObj()
        sys.stdout.write("\ttorture test 1 (10000 iterations): ")

        start_time = time.clock()
        for i in range(10000):
            (y, z, q) = object_.torture_signature_0(5000, "Torture Test 1",
                                                    12345)

        end_time = time.clock()
        delta_time = end_time - start_time
        total_time += delta_time
        print("%f secs" % delta_time)

        sys.stdout.write("\ttorture test 2 (10000 iterations): ")

        start_time = time.clock()
        for i in range(10000):
            (y, z, q) = Everything.TestObj().torture_signature_0(
                5000, "Torture Test 2", 12345)

        end_time = time.clock()
        delta_time = end_time - start_time
        total_time += delta_time
        print("%f secs" % delta_time)

        sys.stdout.write("\ttorture test 3 (10000 iterations): ")
        start_time = time.clock()
        for i in range(10000):
            try:
                (y, z,
                 q) = object_.torture_signature_1(5000, "Torture Test 3",
                                                  12345)
            except:
                pass
        end_time = time.clock()
        delta_time = end_time - start_time
        total_time += delta_time
        print("%f secs" % delta_time)

        sys.stdout.write("\ttorture test 4 (10000 iterations): ")

        def callback(userdata):
            return 0

        userdata = [1, 2, 3, 4]
        start_time = time.clock()
        for i in range(10000):
            (y, z,
             q) = Everything.test_torture_signature_2(5000, callback, userdata,
                                                      "Torture Test 4", 12345)
        end_time = time.clock()
        delta_time = end_time - start_time
        total_time += delta_time
        print("%f secs" % delta_time)
        print("\t====")
        print("\tTotal: %f sec" % total_time)
    def test_gtype(self):
        object_ = Everything.TestObj()
        self.assertEqual(object_.props.gtype, GObject.TYPE_INVALID)
        object_.props.gtype = int
        self.assertEqual(object_.props.gtype, GObject.TYPE_INT)

        object_ = Everything.TestObj(gtype=int)
        self.assertEqual(object_.props.gtype, GObject.TYPE_INT)
        object_.props.gtype = str
        self.assertEqual(object_.props.gtype, GObject.TYPE_STRING)
Example #3
0
    def test_gtype(self):
        obj = Regress.TestObj()
        self.assertEqual(self.get_prop(obj, 'gtype'), GObject.TYPE_INVALID)
        self.set_prop(obj, 'gtype', int)
        self.assertEqual(self.get_prop(obj, 'gtype'), GObject.TYPE_INT)

        obj = Regress.TestObj(gtype=int)
        self.assertEqual(self.get_prop(obj, 'gtype'), GObject.TYPE_INT)
        self.set_prop(obj, 'gtype', str)
        self.assertEqual(self.get_prop(obj, 'gtype'), GObject.TYPE_STRING)
Example #4
0
    def test_list(self):
        object_ = Everything.TestObj()
        self.assertEquals(object_.props.list, [])

        object_.props.list = ['1', '2', '3']
        self.assertTrue(isinstance(object_.props.list, list))
        self.assertEquals(object_.props.list, ['1', '2', '3'])
    def test_basic(self):
        object_ = Everything.TestObj()

        self.assertEqual(object_.props.int, 0)
        object_.props.int = 42
        self.assertTrue(isinstance(object_.props.int, int))
        self.assertEqual(object_.props.int, 42)

        self.assertEqual(object_.props.float, 0.0)
        object_.props.float = 42.42
        self.assertTrue(isinstance(object_.props.float, float))
        self.assertAlmostEqual(object_.props.float, 42.42, places=5)

        self.assertEqual(object_.props.double, 0.0)
        object_.props.double = 42.42
        self.assertTrue(isinstance(object_.props.double, float))
        self.assertAlmostEqual(object_.props.double, 42.42, places=5)

        self.assertEqual(object_.props.string, None)
        object_.props.string = 'mec'
        self.assertTrue(isinstance(object_.props.string, str))
        self.assertEqual(object_.props.string, 'mec')

        self.assertEqual(object_.props.gtype, GObject.TYPE_INVALID)
        object_.props.gtype = int
        self.assertEqual(object_.props.gtype, GObject.TYPE_INT)
    def test_hash_table(self):
        object_ = Everything.TestObj()
        self.assertEquals(object_.props.hash_table, None)

        object_.props.hash_table = {'mec': 56}
        self.assertTrue(isinstance(object_.props.hash_table, dict))
        self.assertEquals(list(object_.props.hash_table.items())[0], ('mec', 56))
Example #7
0
    def test_annotated_glist(self):
        obj = Regress.TestObj()
        self.assertEqual(self.get_prop(obj, 'list'), [])

        self.set_prop(obj, 'list', ['1', '2', '3'])
        self.assertTrue(isinstance(self.get_prop(obj, 'list'), list))
        self.assertEqual(self.get_prop(obj, 'list'), ['1', '2', '3'])
Example #8
0
    def test_obj_skip_return_val_no_out(self):
        obj = Everything.TestObj()
        # raises an error for 0, succeeds for any other value
        self.assertRaises(GLib.GError, obj.skip_return_val_no_out, 0)

        ret = obj.skip_return_val_no_out(1)
        self.assertEqual(ret, None)
Example #9
0
 def test_obj_skip_return_val(self):
     obj = Everything.TestObj()
     ret = obj.skip_return_val(50, 42.0, 60, 2, 3)
     self.assertEqual(len(ret), 3)
     self.assertEqual(ret[0], 51)
     self.assertEqual(ret[1], 61)
     self.assertEqual(ret[2], 32)
Example #10
0
    def test_callback_in_methods(self):
        object_ = Everything.TestObj()

        def callback():
            TestCallbacks.called = True
            return 42

        TestCallbacks.called = False
        object_.instance_method_callback(callback)
        self.assertTrue(TestCallbacks.called)

        TestCallbacks.called = False
        Everything.TestObj.static_method_callback(callback)
        self.assertTrue(TestCallbacks.called)

        def callbackWithUserData(user_data):
            TestCallbacks.called += 1
            return 42

        TestCallbacks.called = 0
        Everything.TestObj.new_callback(callbackWithUserData, None)
        self.assertEqual(TestCallbacks.called, 1)
        # Note: using "new_callback" adds the notification to the same global
        # list as Everything.test_callback_destroy_notify, so thaw the list
        # so we don't get confusion between tests.
        self.assertEqual(Everything.test_callback_thaw_notifications(), 42)
        self.assertEqual(TestCallbacks.called, 2)
Example #11
0
    def test_hash_table(self):
        obj = Regress.TestObj()
        self.assertEqual(self.get_prop(obj, 'hash-table'), None)

        self.set_prop(obj, 'hash-table', {'mec': 56})
        self.assertTrue(isinstance(self.get_prop(obj, 'hash-table'), dict))
        self.assertEqual(list(self.get_prop(obj, 'hash-table').items())[0],
                         ('mec', 56))
    def test_object_argument_type_error(self):
        # ensure TypeError is raised for things which are not GObjects
        obj = Regress.TestObj()
        obj.set_bare(GObject.Object())
        obj.set_bare(None)

        self.assertRaises(TypeError, obj.set_bare, object())
        self.assertRaises(TypeError, obj.set_bare, 42)
        self.assertRaises(TypeError, obj.set_bare, 'not an object')
Example #13
0
    def test_object_param_signal(self):
        obj = Everything.TestObj()

        def callback(obj, obj_param):
            self.assertEqual(obj_param.props.int, 3)
            self.assertGreater(obj_param.__grefcount__, 1)

        obj.connect('sig-with-obj', callback)
        obj.emit_sig_with_obj()
 def test_instance_argument_base_type_error(self):
     # ensure TypeError is raised when a base type is passed to something
     # expecting a derived type
     obj = Regress.TestSubObj()
     self.assertEqual(Regress.TestSubObj.instance_method(obj), 0)
     self.assertRaises(TypeError, Regress.TestSubObj.instance_method,
                       GObject.Object())
     self.assertRaises(TypeError, Regress.TestSubObj.instance_method,
                       Regress.TestObj())
 def test_instance_argument_error(self):
     # ensure TypeError is raised for non Regress.TestObj instances.
     obj = Regress.TestObj()
     self.assertEqual(Regress.TestObj.instance_method(obj), -1)
     self.assertRaises(TypeError, Regress.TestObj.instance_method, object())
     self.assertRaises(TypeError, Regress.TestObj.instance_method,
                       GObject.Object())
     self.assertRaises(TypeError, Regress.TestObj.instance_method, 42)
     self.assertRaises(TypeError, Regress.TestObj.instance_method,
                       'not an object')
Example #16
0
    def test_boxed(self):
        object_ = Everything.TestObj()
        self.assertEqual(object_.props.boxed, None)

        boxed = Everything.TestBoxed()
        boxed.some_int8 = 42
        object_.props.boxed = boxed

        self.assertTrue(isinstance(object_.props.boxed, Everything.TestBoxed))
        self.assertEqual(object_.props.boxed.some_int8, 42)
Example #17
0
    def test_interface(self):
        s = Regress.TestStructC()

        obj = Regress.TestObj()
        s.obj = obj
        self.assertTrue(s.obj is obj)

        s.obj = None
        self.assertTrue(s.obj is None)

        self.assertRaises(TypeError, setattr, s, "obj", object())
Example #18
0
    def test_uint64_param_from_c(self):
        obj = Everything.TestObj()

        def callback(obj, i):
            obj.callback_i = i
            return i

        obj.callback_i = None

        obj.connect('sig-with-uint64-prop', callback)
        obj.emit_sig_with_uint64()
        self.assertEqual(obj.callback_i, GObject.G_MAXUINT64)
Example #19
0
    def test_int64_param_from_py(self):
        obj = Everything.TestObj()

        def callback(obj, i):
            obj.callback_i = i
            return i

        obj.callback_i = None
        obj.connect('sig-with-int64-prop', callback)
        rv = obj.emit('sig-with-int64-prop', GObject.G_MAXINT64)
        self.assertEqual(rv, GObject.G_MAXINT64)
        self.assertEqual(obj.callback_i, GObject.G_MAXINT64)
Example #20
0
    def test_intarray_ret(self):
        obj = Everything.TestObj()

        def callback(obj, i):
            obj.callback_i = i
            return [i, i + 1]

        obj.callback_i = None

        try:
            obj.connect('sig-with-intarray-ret', callback)
        except TypeError as e:
            # compat with g-i 1.34.x
            if 'unknown signal' in str(e):
                return
            raise

        rv = obj.emit('sig-with-intarray-ret', 42)
        self.assertEqual(obj.callback_i, 42)
        self.assertEqual(type(rv), GLib.Array)
        self.assertEqual(rv.len, 2)
Example #21
0
    def testCallbackInMethods(self):
        object_ = Everything.TestObj()

        def callback():
            TestCallbacks.called = True
            return 42

        TestCallbacks.called = False
        object_.instance_method_callback(callback)
        self.assertTrue(TestCallbacks.called)

        TestCallbacks.called = False
        Everything.TestObj.static_method_callback(callback)
        self.assertTrue(TestCallbacks.called)

        def callbackWithUserData(user_data):
            TestCallbacks.called = True
            return 42

        TestCallbacks.called = False
        obj_ = Everything.TestObj.new_callback(callbackWithUserData, None)
        self.assertTrue(TestCallbacks.called)
Example #22
0
 def test_main(self):
     obj = Everything.TestObj()
     for _ in range(10):
         obj.instance_method_full()
Example #23
0
 def test_ghashtable(self):
     obj = Regress.TestObj()
     self.assertTrue(obj.hash_table is None)
Example #24
0
 def test_regress(self):
     res = Regress.TestObj().skip_return_val(50, 42.0, 60, 2, 3)
     self.assertEqual(repr(res), "(out_b=51, inout_d=61, out_sum=32)")