Tracing

Testsuite provides basic facility to trace external requests. It generates trace_id and you can pass while performing calls to yours service. Mockserver already supports this feature.

Check trace id

You can use testsuite_traceid_manager fixture in the following ways:

def test_foo(testsuite_traceid_manager):
    # current trace_id
    testsuite_traceid_manager.trace_id

    # check that given trace_id was generated by testsuite
    if testsuite_traceid_manager.is_testsuite('my trace id'):
        ...

    # check that given trace_id came from previous testcase
    if testsuite_traceid_manager.is_other_test('my trace id'):
        ...

Override trace id generation

By default uuid4 is used as trace id, you can override this behaviour:

@pytest.fixture(scope='session')
def testsuite_traceid_generator():
    def gen():
        return 'foo'
    return gen

Fixtures

testsuite.plugins.tracing.testsuite_trace_id()[source]

Testcase trace id.

testsuite.plugins.tracing.testsuite_traceid_generator()[source]

Fill free to override this fixture with our own.

testsuite.plugins.tracing.testsuite_traceid_manager()[source]

TraceidManager associated with current testcase.

Returns:

testsuite.tracing.TraceidManager

Classes

class testsuite.tracing.TraceidManager(trace_id: str, history: set[str])[source]
is_other_test(trace_id: str | None) bool[source]

Returns True when trace_id was generated by one of the previous testcases.

is_testsuite(trace_id: str | None) bool[source]

Returns True when trace_id was generated by testsuite.

property trace_id: str

Current testcase trace_id value.