1import pytest
3
4
5
6async def test_basic(service_client, testpoint):
7 @testpoint('simple-testpoint')
8 def simple_testpoint(data):
9 assert data == {'payload': 'Hello, world!'}
10
11 response = await service_client.get('/testpoint')
12 assert response.status == 200
13 assert simple_testpoint.times_called == 1
14
15
16
17
18async def test_injection(service_client, testpoint):
19 @testpoint('injection-point')
20 def injection_point(data):
21 return {'value': 'injected'}
22
23 response = await service_client.get('/testpoint')
24 assert response.status == 200
25 assert response.json() == {'value': 'injected'}
26
27
28 assert injection_point.times_called == 1
29
30
31
32async def test_disabled_testpoint(service_client, testpoint):
33 response = await service_client.get('/testpoint')
34 assert response.status == 200
35
36 @testpoint('injection-point')
37 def injection_point(data):
38 return {'value': 'injected'}
39
40
41 with pytest.raises(
43 ):
44 assert injection_point.times_called == 0
45
46
47 await service_client.update_server_state()
48 assert injection_point.times_called == 0
49
50
51async def test_manual_testpoint_registration(service_client, testpoint):
52
53 @testpoint('injection-point')
54 def injection_point(data):
55 return {'value': 'injected'}
56
57 await service_client.update_server_state()
58 assert injection_point.times_called == 0
59
60
61 response = await service_client.get('/testpoint')
62 assert response.status == 200
63
64 assert injection_point.times_called == 1