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):
23 sc
= self
._tc
.create_stream_class()
24 self
.assertEqual(len(trace
), 0)
26 trace
.create_stream(sc
)
27 self
.assertEqual(len(trace
), 1)
29 def _create_trace_with_some_streams(self
):
30 sc
= self
._tc
.create_stream_class(assigns_automatic_stream_id
=False)
32 trace
.create_stream(sc
, id=12)
33 trace
.create_stream(sc
, id=15)
34 trace
.create_stream(sc
, id=17)
39 trace
= self
._create
_trace
_with
_some
_streams
()
40 stream_ids
= set(trace
)
41 self
.assertEqual(stream_ids
, {12, 15, 17})
43 def test_getitem(self
):
44 trace
= self
._create
_trace
_with
_some
_streams
()
46 self
.assertEqual(trace
[12].id, 12)
48 def test_getitem_invalid_key(self
):
49 trace
= self
._create
_trace
_with
_some
_streams
()
50 with self
.assertRaises(KeyError):
53 def test_destruction_listener(self
):
54 def on_trace_class_destruction(trace_class
):
55 nonlocal trace_class_destroyed
56 trace_class_destroyed
= True
58 def on_trace_destruction(trace
):
59 nonlocal trace_destroyed
60 trace_destroyed
= True
62 trace_destroyed
= False
63 trace_class_destroyed
= False
65 trace_class
= get_default_trace_class()
66 stream_class
= trace_class
.create_stream_class()
68 stream
= trace
.create_stream(stream_class
)
70 trace_class
.add_destruction_listener(on_trace_class_destruction
)
71 trace
.add_destruction_listener(on_trace_destruction
)
73 self
.assertFalse(trace_class_destroyed
)
74 self
.assertFalse(trace_destroyed
)
78 self
.assertFalse(trace_class_destroyed
)
79 self
.assertFalse(trace_destroyed
)
83 self
.assertFalse(trace_class_destroyed
)
84 self
.assertTrue(trace_destroyed
)
88 self
.assertFalse(trace_class_destroyed
)
89 self
.assertTrue(trace_destroyed
)
93 self
.assertTrue(trace_class_destroyed
)
94 self
.assertTrue(trace_destroyed
)