import pytest
@pytest.mark.servicetest
def test_service(service_client):
pass
async def test_postgres(service_client, pgsql):
response = await service_client.post('/v1/key-value?key=hello&value=world')
assert response.status == 201
assert 'text/plain' in response.headers['Content-Type']
assert response.text == 'world'
cursor = pgsql['admin'].cursor()
cursor.execute("SELECT value FROM key_value_table WHERE key='hello'")
result = cursor.fetchall()
assert len(result) == 1
assert result[0][0] == 'world'
response = await service_client.get('/v1/key-value?key=hello')
assert response.status == 200
assert 'text/plain' in response.headers['Content-Type']
assert response.text == 'world'
response = await service_client.delete('/v1/key-value?key=hello')
assert response.status == 200
cursor.execute("SELECT value FROM key_value_table WHERE key='hello'")
assert len(cursor.fetchall()) == 0
response = await service_client.post('/v1/key-value?key=hello&value=there')
assert response.status == 201
assert 'text/plain' in response.headers['Content-Type']
assert response.text == 'there'
response = await service_client.get('/v1/key-value?key=hello')
assert response.status == 200
assert 'text/plain' in response.headers['Content-Type']
assert response.text == 'there'
response = await service_client.post('/v1/key-value?key=hello&value=again')
assert response.status == 409
assert 'text/plain' in response.headers['Content-Type']
assert response.text == 'there'
response = await service_client.get('/v1/key-value?key=missing')
assert response.status == 404