Add Babeltrace 2 Python bindings tests
[babeltrace.git] / tests / bindings / python / bt2 / test_event_class.py
1 from bt2 import values
2 import unittest
3 import copy
4 import bt2
5
6
7 class EventClassTestCase(unittest.TestCase):
8 def setUp(self):
9 self._context_ft = bt2.StructureFieldType()
10 self._context_ft.append_field('allo', bt2.StringFieldType())
11 self._context_ft.append_field('zola', bt2.IntegerFieldType(18))
12 self._payload_ft = bt2.StructureFieldType()
13 self._payload_ft.append_field('zoom', bt2.StringFieldType())
14 self._ec = bt2.EventClass('my_event')
15 self._ec.id = 18
16 self._ec.context_field_type = self._context_ft
17 self._ec.payload_field_type = self._payload_ft
18
19 def test_create(self):
20 self.assertEqual(self._ec.name, 'my_event')
21 self.assertEqual(self._ec.id, 18)
22 self.assertEqual(self._ec.context_field_type, self._context_ft)
23 self.assertEqual(self._ec.payload_field_type, self._payload_ft)
24
25 def test_create_invalid_no_name(self):
26 with self.assertRaises(TypeError):
27 bt2.EventClass()
28
29 def test_create_full(self):
30 ec = bt2.EventClass(name='name', id=23,
31 context_field_type=self._context_ft,
32 payload_field_type=self._payload_ft,
33 attributes={'model.emf.uri': 'my URI'})
34 self.assertEqual(ec.name, 'name')
35 self.assertEqual(ec.id, 23)
36 self.assertEqual(ec.context_field_type, self._context_ft)
37 self.assertEqual(ec.payload_field_type, self._payload_ft)
38 self.assertEqual(ec.attributes['model.emf.uri'], 'my URI')
39
40 def test_assign_id(self):
41 self._ec.id = 1717
42 self.assertEqual(self._ec.id, 1717)
43
44 def test_assign_invalid_id(self):
45 with self.assertRaises(TypeError):
46 self._ec.id = 'lel'
47
48 def test_assign_context_field_type(self):
49 self._ec.context_field_type = self._payload_ft
50 self.assertEqual(self._ec.context_field_type, self._payload_ft)
51
52 def test_assign_no_context_field_type(self):
53 self._ec.context_field_type = None
54 self.assertIsNone(self._ec.context_field_type)
55
56 def test_assign_invalid_context_field_type(self):
57 with self.assertRaises(TypeError):
58 self._ec.context_field_type = 'lel'
59
60 def test_assign_payload_field_type(self):
61 self._ec.payload_field_type = self._payload_ft
62 self.assertEqual(self._ec.payload_field_type, self._payload_ft)
63
64 def test_assign_no_payload_field_type(self):
65 self._ec.payload_field_type = None
66 self.assertIsNone(self._ec.payload_field_type)
67
68 def test_assign_invalid_payload_field_type(self):
69 with self.assertRaises(TypeError):
70 self._ec.payload_field_type = 'lel'
71
72 def test_stream_class_prop_no_sc(self):
73 self.assertIsNone(self._ec.stream_class)
74
75 def test_stream_class_prop(self):
76 sc = bt2.StreamClass()
77 sc.add_event_class(self._ec)
78 self.assertEqual(self._ec.stream_class.addr, sc.addr)
79
80 def _test_copy(self, cpy):
81 self.assertIsNot(cpy, self._ec)
82 self.assertNotEqual(cpy.addr, self._ec.addr)
83 self.assertEqual(cpy, self._ec)
84
85 def test_copy(self):
86 cpy = copy.copy(self._ec)
87 self._test_copy(cpy)
88 self.assertEqual(self._ec.context_field_type.addr, cpy.context_field_type.addr)
89 self.assertEqual(self._ec.payload_field_type.addr, cpy.payload_field_type.addr)
90
91 def test_deepcopy(self):
92 cpy = copy.deepcopy(self._ec)
93 self._test_copy(cpy)
94 self.assertNotEqual(self._ec.context_field_type.addr, cpy.context_field_type.addr)
95 self.assertNotEqual(self._ec.payload_field_type.addr, cpy.payload_field_type.addr)
96
97 def test_attr_getitem(self):
98 self.assertEqual(self._ec.attributes['id'], 18)
99 self.assertEqual(self._ec.attributes['name'], 'my_event')
100
101 def test_attr_setitem(self):
102 self._ec.attributes['model.emf.uri'] = 'my url'
103 self.assertEqual(self._ec.attributes['model.emf.uri'], 'my url')
104
105 def test_attr_len(self):
106 self.assertTrue(len(self._ec.attributes) != 0)
107
108 def test_attr_iter(self):
109 for name, value in self._ec.attributes.items():
110 self.assertIsInstance(value, values._Value)
111
112 if name == 'name':
113 self.assertEqual(value, 'my_event')
114 elif name == 'id':
115 self.assertEqual(value, 18)
116
117 def test_eq(self):
118 ec1 = bt2.EventClass(name='name', id=23,
119 context_field_type=self._context_ft,
120 payload_field_type=self._payload_ft,
121 attributes={'model.emf.uri': 'my URI'})
122 ec2 = bt2.EventClass(name='name', id=23,
123 context_field_type=self._context_ft,
124 payload_field_type=self._payload_ft,
125 attributes={'model.emf.uri': 'my URI'})
126 self.assertEqual(ec1, ec2)
127
128 def test_ne_name(self):
129 ec1 = bt2.EventClass(name='name1', id=23,
130 context_field_type=self._context_ft,
131 payload_field_type=self._payload_ft,
132 attributes={'model.emf.uri': 'my URI'})
133 ec2 = bt2.EventClass(name='name', id=23,
134 context_field_type=self._context_ft,
135 payload_field_type=self._payload_ft,
136 attributes={'model.emf.uri': 'my URI'})
137 self.assertNotEqual(ec1, ec2)
138
139 def test_ne_id(self):
140 ec1 = bt2.EventClass(name='name', id=24,
141 context_field_type=self._context_ft,
142 payload_field_type=self._payload_ft,
143 attributes={'model.emf.uri': 'my URI'})
144 ec2 = bt2.EventClass(name='name', id=23,
145 context_field_type=self._context_ft,
146 payload_field_type=self._payload_ft,
147 attributes={'model.emf.uri': 'my URI'})
148 self.assertNotEqual(ec1, ec2)
149
150 def test_ne_context_field_type(self):
151 ec1 = bt2.EventClass(name='name', id=23,
152 context_field_type=self._payload_ft,
153 payload_field_type=self._payload_ft,
154 attributes={'model.emf.uri': 'my URI'})
155 ec2 = bt2.EventClass(name='name', id=23,
156 context_field_type=self._context_ft,
157 payload_field_type=self._payload_ft,
158 attributes={'model.emf.uri': 'my URI'})
159 self.assertNotEqual(ec1, ec2)
160
161 def test_ne_payload_field_type(self):
162 ec1 = bt2.EventClass(name='name', id=23,
163 context_field_type=self._context_ft,
164 payload_field_type=self._context_ft,
165 attributes={'model.emf.uri': 'my URI'})
166 ec2 = bt2.EventClass(name='name', id=23,
167 context_field_type=self._context_ft,
168 payload_field_type=self._payload_ft,
169 attributes={'model.emf.uri': 'my URI'})
170 self.assertNotEqual(ec1, ec2)
171
172 def test_ne_attribute(self):
173 ec1 = bt2.EventClass(name='name', id=23,
174 context_field_type=self._context_ft,
175 payload_field_type=self._payload_ft,
176 attributes={'model.emf.uri': 'my URI'})
177 ec2 = bt2.EventClass(name='name', id=23,
178 context_field_type=self._context_ft,
179 payload_field_type=self._payload_ft,
180 attributes={'model.emf.uri': 'my UR'})
181 self.assertNotEqual(ec1, ec2)
182
183 def test_eq_invalid(self):
184 self.assertFalse(self._ec == 23)
This page took 0.032994 seconds and 4 git commands to generate.