Commit | Line | Data |
---|---|---|
9cf643d1 PP |
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 | |
811644b8 PP |
16 | self._ec.emf_uri = 'yes' |
17 | self._ec.log_level = bt2.EventClassLogLevel.INFO | |
9cf643d1 PP |
18 | self._ec.context_field_type = self._context_ft |
19 | self._ec.payload_field_type = self._payload_ft | |
20 | ||
811644b8 PP |
21 | def tearDown(self): |
22 | del self._context_ft | |
23 | del self._payload_ft | |
24 | del self._ec | |
25 | ||
9cf643d1 PP |
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) | |
811644b8 PP |
31 | self.assertEqual(self._ec.emf_uri, 'yes') |
32 | self.assertEqual(self._ec.log_level, bt2.EventClassLogLevel.INFO) | |
9cf643d1 PP |
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, | |
811644b8 PP |
42 | emf_uri='my URI', |
43 | log_level=bt2.EventClassLogLevel.WARNING) | |
9cf643d1 PP |
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) | |
811644b8 PP |
48 | self.assertEqual(ec.emf_uri, 'my URI') |
49 | self.assertEqual(ec.log_level, bt2.EventClassLogLevel.WARNING) | |
9cf643d1 PP |
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 | ||
811644b8 PP |
108 | def test_assign_emf_uri(self): |
109 | self._ec.emf_uri = 'salut' | |
110 | self.assertEqual(self._ec.emf_uri, 'salut') | |
9cf643d1 | 111 | |
811644b8 PP |
112 | def test_assign_invalid_emf_uri(self): |
113 | with self.assertRaises(TypeError): | |
114 | self._ec.emf_uri = 23 | |
9cf643d1 | 115 | |
811644b8 PP |
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) | |
9cf643d1 | 119 | |
811644b8 PP |
120 | def test_assign_invalid_log_level(self): |
121 | with self.assertRaises(ValueError): | |
122 | self._ec.log_level = 'zoom' | |
9cf643d1 PP |
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, | |
811644b8 PP |
128 | emf_uri='my URI', |
129 | log_level=bt2.EventClassLogLevel.WARNING) | |
9cf643d1 PP |
130 | ec2 = bt2.EventClass(name='name', id=23, |
131 | context_field_type=self._context_ft, | |
132 | payload_field_type=self._payload_ft, | |
811644b8 PP |
133 | emf_uri='my URI', |
134 | log_level=bt2.EventClassLogLevel.WARNING) | |
9cf643d1 PP |
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, | |
811644b8 PP |
141 | emf_uri='my URI', |
142 | log_level=bt2.EventClassLogLevel.WARNING) | |
9cf643d1 PP |
143 | ec2 = bt2.EventClass(name='name', id=23, |
144 | context_field_type=self._context_ft, | |
145 | payload_field_type=self._payload_ft, | |
811644b8 PP |
146 | emf_uri='my URI', |
147 | log_level=bt2.EventClassLogLevel.WARNING) | |
9cf643d1 PP |
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, | |
811644b8 PP |
154 | emf_uri='my URI', |
155 | log_level=bt2.EventClassLogLevel.WARNING) | |
9cf643d1 PP |
156 | ec2 = bt2.EventClass(name='name', id=23, |
157 | context_field_type=self._context_ft, | |
158 | payload_field_type=self._payload_ft, | |
811644b8 PP |
159 | emf_uri='my URI', |
160 | log_level=bt2.EventClassLogLevel.WARNING) | |
9cf643d1 PP |
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, | |
811644b8 PP |
167 | emf_uri='my URI', |
168 | log_level=bt2.EventClassLogLevel.WARNING) | |
9cf643d1 PP |
169 | ec2 = bt2.EventClass(name='name', id=23, |
170 | context_field_type=self._context_ft, | |
171 | payload_field_type=self._payload_ft, | |
811644b8 PP |
172 | emf_uri='my URI', |
173 | log_level=bt2.EventClassLogLevel.WARNING) | |
9cf643d1 PP |
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, | |
811644b8 PP |
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) | |
9cf643d1 PP |
195 | ec2 = bt2.EventClass(name='name', id=23, |
196 | context_field_type=self._context_ft, | |
197 | payload_field_type=self._payload_ft, | |
811644b8 PP |
198 | emf_uri='my UR', |
199 | log_level=bt2.EventClassLogLevel.WARNING) | |
9cf643d1 PP |
200 | self.assertNotEqual(ec1, ec2) |
201 | ||
811644b8 | 202 | def test_ne_log_level(self): |
9cf643d1 PP |
203 | ec1 = bt2.EventClass(name='name', id=23, |
204 | context_field_type=self._context_ft, | |
205 | payload_field_type=self._payload_ft, | |
811644b8 PP |
206 | emf_uri='my URI', |
207 | log_level=bt2.EventClassLogLevel.WARNING) | |
9cf643d1 PP |
208 | ec2 = bt2.EventClass(name='name', id=23, |
209 | context_field_type=self._context_ft, | |
210 | payload_field_type=self._payload_ft, | |
811644b8 PP |
211 | emf_uri='my URI', |
212 | log_level=bt2.EventClassLogLevel.ERROR) | |
9cf643d1 PP |
213 | self.assertNotEqual(ec1, ec2) |
214 | ||
215 | def test_eq_invalid(self): | |
216 | self.assertFalse(self._ec == 23) |