d1f6d8e72af34c9eede812ee59fd271cf4022d5b
[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.emf_uri = 'yes'
17 self._ec.log_level = bt2.EventClassLogLevel.INFO
18 self._ec.context_field_type = self._context_ft
19 self._ec.payload_field_type = self._payload_ft
20
21 def tearDown(self):
22 del self._context_ft
23 del self._payload_ft
24 del self._ec
25
26 def test_create(self):
27 self.assertEqual(self._ec.name, 'my_event')
28 self.assertEqual(self._ec.id, 18)
29 self.assertEqual(self._ec.context_field_type, self._context_ft)
30 self.assertEqual(self._ec.payload_field_type, self._payload_ft)
31 self.assertEqual(self._ec.emf_uri, 'yes')
32 self.assertEqual(self._ec.log_level, bt2.EventClassLogLevel.INFO)
33
34 def test_create_invalid_no_name(self):
35 with self.assertRaises(TypeError):
36 bt2.EventClass()
37
38 def test_create_full(self):
39 ec = bt2.EventClass(name='name', id=23,
40 context_field_type=self._context_ft,
41 payload_field_type=self._payload_ft,
42 emf_uri='my URI',
43 log_level=bt2.EventClassLogLevel.WARNING)
44 self.assertEqual(ec.name, 'name')
45 self.assertEqual(ec.id, 23)
46 self.assertEqual(ec.context_field_type, self._context_ft)
47 self.assertEqual(ec.payload_field_type, self._payload_ft)
48 self.assertEqual(ec.emf_uri, 'my URI')
49 self.assertEqual(ec.log_level, bt2.EventClassLogLevel.WARNING)
50
51 def test_assign_id(self):
52 self._ec.id = 1717
53 self.assertEqual(self._ec.id, 1717)
54
55 def test_assign_invalid_id(self):
56 with self.assertRaises(TypeError):
57 self._ec.id = 'lel'
58
59 def test_assign_context_field_type(self):
60 self._ec.context_field_type = self._payload_ft
61 self.assertEqual(self._ec.context_field_type, self._payload_ft)
62
63 def test_assign_no_context_field_type(self):
64 self._ec.context_field_type = None
65 self.assertIsNone(self._ec.context_field_type)
66
67 def test_assign_invalid_context_field_type(self):
68 with self.assertRaises(TypeError):
69 self._ec.context_field_type = 'lel'
70
71 def test_assign_payload_field_type(self):
72 self._ec.payload_field_type = self._payload_ft
73 self.assertEqual(self._ec.payload_field_type, self._payload_ft)
74
75 def test_assign_no_payload_field_type(self):
76 self._ec.payload_field_type = None
77 self.assertIsNone(self._ec.payload_field_type)
78
79 def test_assign_invalid_payload_field_type(self):
80 with self.assertRaises(TypeError):
81 self._ec.payload_field_type = 'lel'
82
83 def test_stream_class_prop_no_sc(self):
84 self.assertIsNone(self._ec.stream_class)
85
86 def test_stream_class_prop(self):
87 sc = bt2.StreamClass()
88 sc.add_event_class(self._ec)
89 self.assertEqual(self._ec.stream_class.addr, sc.addr)
90
91 def _test_copy(self, cpy):
92 self.assertIsNot(cpy, self._ec)
93 self.assertNotEqual(cpy.addr, self._ec.addr)
94 self.assertEqual(cpy, self._ec)
95
96 def test_copy(self):
97 cpy = copy.copy(self._ec)
98 self._test_copy(cpy)
99 self.assertEqual(self._ec.context_field_type.addr, cpy.context_field_type.addr)
100 self.assertEqual(self._ec.payload_field_type.addr, cpy.payload_field_type.addr)
101
102 def test_deepcopy(self):
103 cpy = copy.deepcopy(self._ec)
104 self._test_copy(cpy)
105 self.assertNotEqual(self._ec.context_field_type.addr, cpy.context_field_type.addr)
106 self.assertNotEqual(self._ec.payload_field_type.addr, cpy.payload_field_type.addr)
107
108 def test_assign_emf_uri(self):
109 self._ec.emf_uri = 'salut'
110 self.assertEqual(self._ec.emf_uri, 'salut')
111
112 def test_assign_invalid_emf_uri(self):
113 with self.assertRaises(TypeError):
114 self._ec.emf_uri = 23
115
116 def test_assign_log_level(self):
117 self._ec.log_level = bt2.EventClassLogLevel.EMERGENCY
118 self.assertEqual(self._ec.log_level, bt2.EventClassLogLevel.EMERGENCY)
119
120 def test_assign_invalid_log_level(self):
121 with self.assertRaises(ValueError):
122 self._ec.log_level = 'zoom'
123
124 def test_eq(self):
125 ec1 = bt2.EventClass(name='name', id=23,
126 context_field_type=self._context_ft,
127 payload_field_type=self._payload_ft,
128 emf_uri='my URI',
129 log_level=bt2.EventClassLogLevel.WARNING)
130 ec2 = bt2.EventClass(name='name', id=23,
131 context_field_type=self._context_ft,
132 payload_field_type=self._payload_ft,
133 emf_uri='my URI',
134 log_level=bt2.EventClassLogLevel.WARNING)
135 self.assertEqual(ec1, ec2)
136
137 def test_ne_name(self):
138 ec1 = bt2.EventClass(name='name1', id=23,
139 context_field_type=self._context_ft,
140 payload_field_type=self._payload_ft,
141 emf_uri='my URI',
142 log_level=bt2.EventClassLogLevel.WARNING)
143 ec2 = bt2.EventClass(name='name', id=23,
144 context_field_type=self._context_ft,
145 payload_field_type=self._payload_ft,
146 emf_uri='my URI',
147 log_level=bt2.EventClassLogLevel.WARNING)
148 self.assertNotEqual(ec1, ec2)
149
150 def test_ne_id(self):
151 ec1 = bt2.EventClass(name='name', id=24,
152 context_field_type=self._context_ft,
153 payload_field_type=self._payload_ft,
154 emf_uri='my URI',
155 log_level=bt2.EventClassLogLevel.WARNING)
156 ec2 = bt2.EventClass(name='name', id=23,
157 context_field_type=self._context_ft,
158 payload_field_type=self._payload_ft,
159 emf_uri='my URI',
160 log_level=bt2.EventClassLogLevel.WARNING)
161 self.assertNotEqual(ec1, ec2)
162
163 def test_ne_context_field_type(self):
164 ec1 = bt2.EventClass(name='name', id=23,
165 context_field_type=self._payload_ft,
166 payload_field_type=self._payload_ft,
167 emf_uri='my URI',
168 log_level=bt2.EventClassLogLevel.WARNING)
169 ec2 = bt2.EventClass(name='name', id=23,
170 context_field_type=self._context_ft,
171 payload_field_type=self._payload_ft,
172 emf_uri='my URI',
173 log_level=bt2.EventClassLogLevel.WARNING)
174 self.assertNotEqual(ec1, ec2)
175
176 def test_ne_payload_field_type(self):
177 ec1 = bt2.EventClass(name='name', id=23,
178 context_field_type=self._context_ft,
179 payload_field_type=self._context_ft,
180 emf_uri='my URI',
181 log_level=bt2.EventClassLogLevel.WARNING)
182 ec2 = bt2.EventClass(name='name', id=23,
183 context_field_type=self._context_ft,
184 payload_field_type=self._payload_ft,
185 emf_uri='my URI',
186 log_level=bt2.EventClassLogLevel.WARNING)
187 self.assertNotEqual(ec1, ec2)
188
189 def test_ne_emf_uri(self):
190 ec1 = bt2.EventClass(name='name', id=23,
191 context_field_type=self._context_ft,
192 payload_field_type=self._payload_ft,
193 emf_uri='my URI',
194 log_level=bt2.EventClassLogLevel.WARNING)
195 ec2 = bt2.EventClass(name='name', id=23,
196 context_field_type=self._context_ft,
197 payload_field_type=self._payload_ft,
198 emf_uri='my UR',
199 log_level=bt2.EventClassLogLevel.WARNING)
200 self.assertNotEqual(ec1, ec2)
201
202 def test_ne_log_level(self):
203 ec1 = bt2.EventClass(name='name', id=23,
204 context_field_type=self._context_ft,
205 payload_field_type=self._payload_ft,
206 emf_uri='my URI',
207 log_level=bt2.EventClassLogLevel.WARNING)
208 ec2 = bt2.EventClass(name='name', id=23,
209 context_field_type=self._context_ft,
210 payload_field_type=self._payload_ft,
211 emf_uri='my URI',
212 log_level=bt2.EventClassLogLevel.ERROR)
213 self.assertNotEqual(ec1, ec2)
214
215 def test_eq_invalid(self):
216 self.assertFalse(self._ec == 23)
This page took 0.034153 seconds and 3 git commands to generate.