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.
 
 
 
 

62 lines
1.9 KiB

import pytest, requests
from utils import Collection
from typing import Generator
users_host = "http://localhost:81"
@pytest.fixture
def users(demo_db) -> Generator[Collection, None, None]:
collection = Collection(demo_db, "users")
yield collection
collection.drop()
def test_get_user(users):
users.upsert(100, {"name": "John", "email": "test@email.eu"})
response = requests.get(url="{0}/users/100".format(users_host)).json()
assert response["_id"] == 100
assert response["email"] == "test@email.eu"
assert response["name"] == "John"
def test_create_user(users):
response = requests.post(
url="{0}/users/101".format(users_host),
data={"name": "John Doe", "email": "johny@email.eu"},
)
assert response.status_code == 200
response = users.get({"_id": 101})
assert len(response) == 1
assert response[0]["_id"] == 101
assert response[0]["email"] == "johny@email.eu"
assert response[0]["name"] == "John Doe"
def test_update_user(users):
users.upsert(100, {"name": "John", "email": "test@email.eu"})
requests.put(
url="{0}/users/100".format(users_host),
data={"name": "John", "email": "john@email.com"},
).json()
response = users.get({"_id": 100})
assert response[0] == {"_id": 100, "name": "John", "email": "john@email.com"}
def test_get_and_delete_users(users):
users.upsert(100, {"name": "John", "email": "john@email.com"})
users.upsert(101, {"name": "Doe", "email": "doe@email.com"})
response = requests.get(url="{}/users".format(users_host)).json()
# testing get request
assert response == [
{"userid": 100, "name": "John", "email": "john@email.com"},
{"userid": 101, "name": "Doe", "email": "doe@email.com"},
]
requests.delete(url="{}/users/100".format(users_host))
response = users.get({"_id": 100})
# asserting the delete has been done
assert response == []