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
20
21async def test_subscribe(service_client, mockserver):
22 async with service_client.capture_logs() as capture:
23
24 @capture.subscribe(
25 text='Message to capture',
26 trace_id=mockserver.trace_id,
27 )
28 def log_event(link, **other):
29 pass
30
31 response = await service_client.get(
32 '/logcapture',
33 headers={'x-yatraceid': mockserver.trace_id},
34 )
35 assert response.status == 200
36
37 call = await log_event.wait_call()
38 assert call['link'] == response.headers['x-yarequestid']
39