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
)
50 self
.assertEqual(len(ec
.user_attributes
), 0)
52 def test_create_invalid_id(self
):
53 sc
= self
._tc
.create_stream_class(assigns_automatic_event_class_id
=False)
54 with self
.assertRaises(TypeError):
55 sc
.create_event_class(id='lel')
57 def test_create_specific_context_field_class(self
):
58 fc
= self
._tc
.create_structure_field_class()
59 ec
= self
._stream
_class
.create_event_class(specific_context_field_class
=fc
)
60 self
.assertEqual(ec
.specific_context_field_class
.addr
, fc
.addr
)
62 def test_create_invalid_specific_context_field_class(self
):
63 with self
.assertRaises(TypeError):
64 self
._stream
_class
.create_event_class(specific_context_field_class
='lel')
66 def test_create_payload_field_class(self
):
67 fc
= self
._tc
.create_structure_field_class()
68 ec
= self
._stream
_class
.create_event_class(payload_field_class
=fc
)
69 self
.assertEqual(ec
.payload_field_class
.addr
, fc
.addr
)
71 def test_create_invalid_payload_field_class(self
):
72 with self
.assertRaises(TypeError):
73 self
._stream
_class
.create_event_class(payload_field_class
='lel')
75 def test_create_name(self
):
76 ec
= self
._stream
_class
.create_event_class(name
='viande à chien')
77 self
.assertEqual(ec
.name
, 'viande à chien')
79 def test_create_invalid_name(self
):
80 with self
.assertRaises(TypeError):
81 self
._stream
_class
.create_event_class(name
=2)
83 def test_emf_uri(self
):
84 ec
= self
._stream
_class
.create_event_class(emf_uri
='salut')
85 self
.assertEqual(ec
.emf_uri
, 'salut')
87 def test_create_invalid_emf_uri(self
):
88 with self
.assertRaises(TypeError):
89 self
._stream
_class
.create_event_class(emf_uri
=23)
91 def test_create_log_level(self
):
92 ec
= self
._stream
_class
.create_event_class(
93 log_level
=bt2
.EventClassLogLevel
.EMERGENCY
95 self
.assertEqual(ec
.log_level
, bt2
.EventClassLogLevel
.EMERGENCY
)
97 def test_create_invalid_log_level(self
):
98 with self
.assertRaises(ValueError):
99 self
._stream
_class
.create_event_class(log_level
='zoom')
101 def test_create_user_attributes(self
):
102 ec
= self
._stream
_class
.create_event_class(user_attributes
={'salut': 23})
103 self
.assertEqual(ec
.user_attributes
, {'salut': 23})
105 def test_create_invalid_user_attributes(self
):
106 with self
.assertRaises(TypeError):
107 self
._stream
_class
.create_event_class(user_attributes
=object())
109 def test_create_invalid_user_attributes_value_type(self
):
110 with self
.assertRaises(TypeError):
111 self
._stream
_class
.create_event_class(user_attributes
=23)
113 def test_stream_class(self
):
114 ec
= self
._stream
_class
.create_event_class()
115 self
.assertEqual(ec
.stream_class
.addr
, self
._stream
_class
.addr
)