1import pytest
2
3
4
5@pytest.mark.servicetest
6def test_service(service_client):
7 pass
8
9
10
11async def test_postgres(service_client, pgsql):
12
13 response = await service_client.post('/v1/key-value?key=hello&value=world')
14 assert response.status == 201
15 assert 'text/plain' in response.headers['Content-Type']
16 assert response.text == 'world'
17
18
19
20 cursor = pgsql['admin'].cursor()
21 cursor.execute("SELECT value FROM key_value_table WHERE key='hello'")
22 result = cursor.fetchall()
23 assert len(result) == 1
24 assert result[0][0] == 'world'
25
26
27 response = await service_client.get('/v1/key-value?key=hello')
28 assert response.status == 200
29 assert 'text/plain' in response.headers['Content-Type']
30 assert response.text == 'world'
31
32
33 response = await service_client.delete('/v1/key-value?key=hello')
34 assert response.status == 200
35
36
37 cursor.execute("SELECT value FROM key_value_table WHERE key='hello'")
38 assert len(cursor.fetchall()) == 0
39
40
41 response = await service_client.post('/v1/key-value?key=hello&value=there')
42 assert response.status == 201
43 assert 'text/plain' in response.headers['Content-Type']
44 assert response.text == 'there'
45
46 response = await service_client.get('/v1/key-value?key=hello')
47 assert response.status == 200
48 assert 'text/plain' in response.headers['Content-Type']
49 assert response.text == 'there'
50
51 response = await service_client.post('/v1/key-value?key=hello&value=again')
52 assert response.status == 409
53 assert 'text/plain' in response.headers['Content-Type']
54 assert response.text == 'there'
55
56 response = await service_client.get('/v1/key-value?key=missing')
57 assert response.status == 404