|
62 | 62 | StatusCode,
|
63 | 63 | get_tracer,
|
64 | 64 | set_tracer_provider,
|
| 65 | + span, |
65 | 66 | )
|
66 | 67 |
|
67 | 68 |
|
@@ -2061,3 +2062,28 @@ def test_tracer_provider_init_default(self, resource_patch, sample_patch):
|
2061 | 2062 | sample_patch.assert_called_once()
|
2062 | 2063 | self.assertIsNotNone(tracer_provider._span_limits)
|
2063 | 2064 | self.assertIsNotNone(tracer_provider._atexit_handler)
|
| 2065 | + |
| 2066 | + |
| 2067 | +class TestRandomIdGenerator(unittest.TestCase): |
| 2068 | + _TRACE_ID_MAX_VALUE = 2 ** 128 - 1 |
| 2069 | + _SPAN_ID_MAX_VALUE = 2 ** 64 - 1 |
| 2070 | + |
| 2071 | + @patch('random.getrandbits', side_effect=[span.INVALID_SPAN_ID, 0x00000000DEADBEF0]) |
| 2072 | + def test_generate_span_id_avoids_invalid(self, mock_getrandbits): |
| 2073 | + generator = RandomIdGenerator() |
| 2074 | + span_id = generator.generate_span_id() |
| 2075 | + |
| 2076 | + self.assertNotEqual(span_id, span.INVALID_SPAN_ID) |
| 2077 | + self.assertGreater(span_id, span.INVALID_SPAN_ID) |
| 2078 | + self.assertLessEqual(span_id, self._SPAN_ID_MAX_VALUE) |
| 2079 | + self.assertEqual(mock_getrandbits.call_count, 2) # Ensure exactly two calls |
| 2080 | + |
| 2081 | + @patch('random.getrandbits', side_effect=[span.INVALID_TRACE_ID, 0x000000000000000000000000DEADBEEF]) |
| 2082 | + def test_generate_trace_id_avoids_invalid(self, mock_getrandbits): |
| 2083 | + generator = RandomIdGenerator() |
| 2084 | + trace_id = generator.generate_trace_id() |
| 2085 | + |
| 2086 | + self.assertNotEqual(trace_id, span.INVALID_TRACE_ID) |
| 2087 | + self.assertGreater(trace_id, span.INVALID_TRACE_ID) |
| 2088 | + self.assertLessEqual(trace_id, self._TRACE_ID_MAX_VALUE) |
| 2089 | + self.assertEqual(mock_getrandbits.call_count, 2) # Ensure exactly two calls |
0 commit comments