1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
# -*- Mode: Python; py-indent-offset: 4 -*-
# vim: tabstop=4 shiftwidth=4 expandtab
import unittest
import sys
sys.path.insert(0, "../")
import gobject
import cairo
from gi.repository import Everything
class TestEverything(unittest.TestCase):
def test_cairo_context(self):
context = Everything.test_cairo_context_full_return()
self.assertTrue(isinstance(context, cairo.Context))
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 10, 10)
context = cairo.Context(surface)
Everything.test_cairo_context_none_in(context)
def test_cairo_surface(self):
surface = Everything.test_cairo_surface_none_return()
self.assertTrue(isinstance(surface, cairo.ImageSurface))
self.assertTrue(isinstance(surface, cairo.Surface))
self.assertEquals(surface.get_format(), cairo.FORMAT_ARGB32)
self.assertEquals(surface.get_width(), 10)
self.assertEquals(surface.get_height(), 10)
surface = Everything.test_cairo_surface_full_return()
self.assertTrue(isinstance(surface, cairo.ImageSurface))
self.assertTrue(isinstance(surface, cairo.Surface))
self.assertEquals(surface.get_format(), cairo.FORMAT_ARGB32)
self.assertEquals(surface.get_width(), 10)
self.assertEquals(surface.get_height(), 10)
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 10, 10)
Everything.test_cairo_surface_none_in(surface)
surface = Everything.test_cairo_surface_full_out()
self.assertTrue(isinstance(surface, cairo.ImageSurface))
self.assertTrue(isinstance(surface, cairo.Surface))
self.assertEquals(surface.get_format(), cairo.FORMAT_ARGB32)
self.assertEquals(surface.get_width(), 10)
self.assertEquals(surface.get_height(), 10)
class TestNullableArgs(unittest.TestCase):
def test_in_nullable_hash(self):
Everything.test_ghash_null_in(None)
def test_in_nullable_list(self):
Everything.test_gslist_null_in(None)
Everything.test_glist_null_in(None)
def test_in_nullable_array(self):
Everything.test_array_int_null_in(None, -1)
def test_in_nullable_string(self):
Everything.test_utf8_null_in(None)
def test_out_nullable_hash(self):
self.assertEqual(None, Everything.test_ghash_null_out())
def test_out_nullable_list(self):
self.assertEqual(None, Everything.test_gslist_null_out())
self.assertEqual(None, Everything.test_glist_null_out())
def test_out_nullable_array(self):
self.assertEqual((None, 0), Everything.test_array_int_null_out())
def test_out_nullable_string(self):
self.assertEqual(None, Everything.test_utf8_null_out())
class TestCallbacks(unittest.TestCase):
called = False
def testCallback(self):
TestCallbacks.called = False
def callback():
TestCallbacks.called = True
Everything.test_simple_callback(callback)
self.assertTrue(TestCallbacks.called)
def testCallbackException(self):
"""
This test ensures that we get errors from callbacks correctly
and in particular that we do not segv when callbacks fail
"""
def callback():
x = 1 / 0
try:
Everything.test_simple_callback(callback)
except ZeroDivisionError:
pass
def testDoubleCallbackException(self):
"""
This test ensures that we get errors from callbacks correctly
and in particular that we do not segv when callbacks fail
"""
def badcallback():
x = 1 / 0
def callback():
Everything.test_boolean(True)
Everything.test_boolean(False)
Everything.test_simple_callback(badcallback())
try:
Everything.test_simple_callback(callback)
except ZeroDivisionError:
pass
def testReturnValueCallback(self):
TestCallbacks.called = False
def callback():
TestCallbacks.called = True
return 44
self.assertEquals(Everything.test_callback(callback), 44)
self.assertTrue(TestCallbacks.called)
def testCallbackAsync(self):
TestCallbacks.called = False
def callback(foo):
TestCallbacks.called = True
return foo
Everything.test_callback_async(callback, 44);
i = Everything.test_callback_thaw_async();
self.assertEquals(44, i);
self.assertTrue(TestCallbacks.called)
|