Imported Upstream version 3.7.3
[platform/upstream/python-gobject.git] / tests / test_internal_api.py
1 # -*- Mode: Python -*-
2
3 import unittest
4
5 from gi.repository import GLib, GObject
6
7 import testhelper
8 import testmodule
9
10
11 class TestObject(unittest.TestCase):
12     def test_create_ctor(self):
13         o = testmodule.PyGObject()
14         self.assertTrue(isinstance(o, GObject.Object))
15         self.assertTrue(isinstance(o, testmodule.PyGObject))
16
17         # has expected property
18         self.assertEqual(o.props.label, 'hello')
19         o.props.label = 'goodbye'
20         self.assertEqual(o.props.label, 'goodbye')
21         self.assertRaises(AttributeError, getattr, o.props, 'nosuchprop')
22
23     def test_pyobject_new_test_type(self):
24         o = testhelper.create_test_type()
25         self.assertTrue(isinstance(o, testmodule.PyGObject))
26
27         # has expected property
28         self.assertEqual(o.props.label, 'hello')
29         o.props.label = 'goodbye'
30         self.assertEqual(o.props.label, 'goodbye')
31         self.assertRaises(AttributeError, getattr, o.props, 'nosuchprop')
32
33     def test_new_refcount(self):
34         # TODO: justify why this should be 2
35         self.assertEqual(testhelper.test_g_object_new(), 2)
36
37
38 class TestGValueConversion(unittest.TestCase):
39     def test_int(self):
40         self.assertEqual(testhelper.test_value(0), 0)
41         self.assertEqual(testhelper.test_value(5), 5)
42         self.assertEqual(testhelper.test_value(-5), -5)
43         self.assertEqual(testhelper.test_value(GObject.G_MAXINT32), GObject.G_MAXINT32)
44         self.assertEqual(testhelper.test_value(GObject.G_MININT32), GObject.G_MININT32)
45
46     def test_str(self):
47         self.assertEqual(testhelper.test_value('hello'), 'hello')
48
49     def test_int_array(self):
50         self.assertEqual(testhelper.test_value_array([]), [])
51         self.assertEqual(testhelper.test_value_array([0]), [0])
52         ar = list(range(100))
53         self.assertEqual(testhelper.test_value_array(ar), ar)
54
55     def test_str_array(self):
56         self.assertEqual(testhelper.test_value_array([]), [])
57         self.assertEqual(testhelper.test_value_array(['a']), ['a'])
58         ar = ('aa ' * 1000).split()
59         self.assertEqual(testhelper.test_value_array(ar), ar)
60
61
62 class TestErrors(unittest.TestCase):
63     def test_gerror(self):
64         callable_ = lambda: GLib.file_get_contents('/nonexisting ')
65         self.assertRaises(GLib.GError, testhelper.test_gerror_exception, callable_)
66
67     def test_no_gerror(self):
68         callable_ = lambda: GLib.file_get_contents(__file__)
69         self.assertEqual(testhelper.test_gerror_exception(callable_), None)
70
71
72 if __name__ == '__main__':
73     unittest.main()