2 from utils
import get_default_trace_class
5 class TraceTestCase(unittest
.TestCase
):
7 self
._tc
= get_default_trace_class()
9 def test_create_default(self
):
11 self
.assertEqual(trace
.name
, None)
13 def test_create_full(self
):
14 trace
= self
._tc
(name
='my name')
15 self
.assertEqual(trace
.name
, 'my name')
17 def test_create_invalid_name(self
):
18 with self
.assertRaises(TypeError):
21 def test_attr_trace_class(self
):
22 trace
= self
._tc
(name
='my name')
23 self
.assertEqual(trace
.cls
.addr
, self
._tc
.addr
)
27 sc
= self
._tc
.create_stream_class()
28 self
.assertEqual(len(trace
), 0)
30 trace
.create_stream(sc
)
31 self
.assertEqual(len(trace
), 1)
33 def _create_trace_with_some_streams(self
):
34 sc
= self
._tc
.create_stream_class(assigns_automatic_stream_id
=False)
36 trace
.create_stream(sc
, id=12)
37 trace
.create_stream(sc
, id=15)
38 trace
.create_stream(sc
, id=17)
43 trace
= self
._create
_trace
_with
_some
_streams
()
44 stream_ids
= set(trace
)
45 self
.assertEqual(stream_ids
, {12, 15, 17})
47 def test_getitem(self
):
48 trace
= self
._create
_trace
_with
_some
_streams
()
50 self
.assertEqual(trace
[12].id, 12)
52 def test_getitem_invalid_key(self
):
53 trace
= self
._create
_trace
_with
_some
_streams
()
54 with self
.assertRaises(KeyError):
57 def test_destruction_listener(self
):
58 def on_trace_class_destruction(trace_class
):
59 nonlocal trace_class_destroyed
60 trace_class_destroyed
= True
62 def on_trace_destruction(trace
):
63 nonlocal trace_destroyed
64 trace_destroyed
= True
66 trace_destroyed
= False
67 trace_class_destroyed
= False
69 trace_class
= get_default_trace_class()
70 stream_class
= trace_class
.create_stream_class()
72 stream
= trace
.create_stream(stream_class
)
74 trace_class
.add_destruction_listener(on_trace_class_destruction
)
75 trace
.add_destruction_listener(on_trace_destruction
)
77 self
.assertFalse(trace_class_destroyed
)
78 self
.assertFalse(trace_destroyed
)
82 self
.assertFalse(trace_class_destroyed
)
83 self
.assertFalse(trace_destroyed
)
87 self
.assertFalse(trace_class_destroyed
)
88 self
.assertTrue(trace_destroyed
)
92 self
.assertFalse(trace_class_destroyed
)
93 self
.assertTrue(trace_destroyed
)
97 self
.assertTrue(trace_class_destroyed
)
98 self
.assertTrue(trace_destroyed
)