2 # Copyright (C) 2019 EfficiOS Inc.
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; only version 2
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 from utils
import get_default_trace_class
24 class EventClassTestCase(unittest
.TestCase
):
26 self
._tc
= get_default_trace_class()
28 self
._context
_fc
= self
._tc
.create_structure_field_class()
29 self
._context
_fc
.append_member('allo', self
._tc
.create_string_field_class())
30 self
._context
_fc
.append_member(
31 'zola', self
._tc
.create_signed_integer_field_class(18)
34 self
._payload
_fc
= self
._tc
.create_structure_field_class()
35 self
._payload
_fc
.append_member('zoom', self
._tc
.create_string_field_class())
37 self
._stream
_class
= self
._tc
.create_stream_class(
38 assigns_automatic_event_class_id
=True
41 def test_create_default(self
):
42 ec
= self
._stream
_class
.create_event_class()
44 self
.assertIsNone(ec
.name
, 'my_event')
45 self
.assertTrue(type(ec
.id), int)
46 self
.assertIsNone(ec
.specific_context_field_class
)
47 self
.assertIsNone(ec
.payload_field_class
)
48 self
.assertIsNone(ec
.emf_uri
)
49 self
.assertIsNone(ec
.log_level
)
51 def test_create_invalid_id(self
):
52 sc
= self
._tc
.create_stream_class(assigns_automatic_event_class_id
=False)
53 with self
.assertRaises(TypeError):
54 sc
.create_event_class(id='lel')
56 def test_create_specific_context_field_class(self
):
57 fc
= self
._tc
.create_structure_field_class()
58 ec
= self
._stream
_class
.create_event_class(specific_context_field_class
=fc
)
59 self
.assertEqual(ec
.specific_context_field_class
.addr
, fc
.addr
)
61 def test_create_invalid_specific_context_field_class(self
):
62 with self
.assertRaises(TypeError):
63 self
._stream
_class
.create_event_class(specific_context_field_class
='lel')
65 def test_create_payload_field_class(self
):
66 fc
= self
._tc
.create_structure_field_class()
67 ec
= self
._stream
_class
.create_event_class(payload_field_class
=fc
)
68 self
.assertEqual(ec
.payload_field_class
.addr
, fc
.addr
)
70 def test_create_invalid_payload_field_class(self
):
71 with self
.assertRaises(TypeError):
72 self
._stream
_class
.create_event_class(payload_field_class
='lel')
74 def test_create_name(self
):
75 ec
= self
._stream
_class
.create_event_class(name
='viande à chien')
76 self
.assertEqual(ec
.name
, 'viande à chien')
78 def test_create_invalid_name(self
):
79 with self
.assertRaises(TypeError):
80 self
._stream
_class
.create_event_class(name
=2)
82 def test_emf_uri(self
):
83 ec
= self
._stream
_class
.create_event_class(emf_uri
='salut')
84 self
.assertEqual(ec
.emf_uri
, 'salut')
86 def test_create_invalid_emf_uri(self
):
87 with self
.assertRaises(TypeError):
88 self
._stream
_class
.create_event_class(emf_uri
=23)
90 def test_create_log_level(self
):
91 ec
= self
._stream
_class
.create_event_class(
92 log_level
=bt2
.EventClassLogLevel
.EMERGENCY
94 self
.assertEqual(ec
.log_level
, bt2
.EventClassLogLevel
.EMERGENCY
)
96 def test_create_invalid_log_level(self
):
97 with self
.assertRaises(ValueError):
98 self
._stream
_class
.create_event_class(log_level
='zoom')
100 def test_stream_class(self
):
101 ec
= self
._stream
_class
.create_event_class()
102 self
.assertEqual(ec
.stream_class
.addr
, self
._stream
_class
.addr
)