2
3import testsuite.utils.http
4
5
6
7async def test_select(service_client: pytest_userver.client.Client):
8 async with service_client.capture_logs(log_level='INFO') as capture:
9 response: testsuite.utils.http.ClientResponse = await service_client.get('/logcapture')
10 assert response.status == 200
11
12 records = capture.select(
13 text='Message to capture',
14 link=response.headers['x-yarequestid'],
15 )
16 assert len(records) == 1, capture.select()
17
18
19
20async def test_subscribe(service_client, mockserver):
21 async with service_client.capture_logs() as capture:
22
23 @capture.subscribe(
24 text='Message to capture',
25 trace_id=mockserver.trace_id,
26 )
27 def log_event(link, **other):
28 pass
29
30 response = await service_client.get(
31 '/logcapture',
32 headers={'x-yatraceid': mockserver.trace_id},
33 )
34 assert response.status == 200
35
36 call = await log_event.wait_call()
37 assert call['link'] == response.headers['x-yarequestid']