You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

82 lines
2.1 KiB

import pytest
import requests
from typing import Generator
from utils import Collection
baesian_host = "http://localhost:84"
name = "Cicero"
item_id = 1
userid_seven = 7
userid_eight = 8
upsert_data = {
"marks": [{"mark": 9, "userid": userid_eight}, {"mark": 9, "userid": userid_seven}],
"name": name,
"nr_votes": 2,
"sum_votes": 18,
}
@pytest.fixture
def baesian(demo_db) -> Generator[Collection, None, None]:
collection = Collection(demo_db, "baesian")
yield collection
collection.drop()
def test_upsert_item(baesian):
requests.post(url="{0}/item/{1}".format(baesian_host, item_id), data={"name": name})
response = baesian.get({})
assert response[0]["name"] == name
assert response[0]["nr_votes"] == 0
def test_add_vote(baesian):
requests.post(url="{0}/item/{1}".format(baesian_host, item_id), data={"name": name})
requests.put(
url="{0}/item/vote/{1}".format(baesian_host, item_id),
data={"userid": userid_eight, "mark": 9},
)
requests.put(
url="{0}/item/vote/{1}".format(baesian_host, item_id),
data={"userid": userid_seven, "mark": 9},
)
response = baesian.get({})
assert len(response[0]["marks"]) == response[0]["nr_votes"]
assert response[0]["name"] == name
assert response[0]["sum_votes"] == 18
def test_get_item(baesian):
baesian.upsert(key=item_id, data=upsert_data)
response = requests.get(
url="{0}/item/{1}".format(baesian_host, item_id),
).json()
assert response["baesian_average"] == 9.0
assert response["sum_votes"] == 18
def test_get_items(baesian):
baesian.upsert(key=item_id, data=upsert_data)
response = requests.get(
url="{0}/items".format(baesian_host),
).json()
assert response[0]["name"] == name
assert len(response[0]["marks"]) > 0
def delete_item(baesian):
baesian.upsert(key=item_id, data=upsert_data)
response = requests.delete(
url="{0}/item/{1}".format(baesian_host, item_id),
).json()
assert response.status_code == 200
db_response = baesian.get({})
assert db_response == []