delta-barth-py/tests/api/test_common.py

54 lines
1.7 KiB
Python

import pytest
from pydantic import ValidationError
from delta_barth.api import common
from delta_barth.errors import (
UnspecifiedRequestType,
)
from delta_barth.types import HttpRequestTypes
def test_validate_creds(credentials):
creds = common.validate_credentials(
username=credentials["user"],
password=credentials["pwd"],
database=credentials["db"],
mandant=credentials["mandant"],
)
assert creds.username == credentials["user"]
assert creds.password == credentials["pwd"]
assert creds.database == credentials["db"]
assert creds.mandant == credentials["mandant"]
# with whitespaces
user = " " + credentials["user"] + " "
creds = common.validate_credentials(
username=user,
password=credentials["pwd"],
database=credentials["db"],
mandant=credentials["mandant"],
)
assert user != credentials["user"]
assert creds.username == credentials["user"]
# invalid type
user = 123
with pytest.raises(ValidationError):
creds = common.validate_credentials(
username=user, # type: ignore
password=credentials["pwd"],
database=credentials["db"],
mandant=credentials["mandant"],
)
@pytest.mark.api_con_required
def test_ping(api_base_url):
resp = common.ping(api_base_url, HttpRequestTypes.GET)
assert resp.status_code == 204
resp = common.ping(api_base_url, HttpRequestTypes.PUT)
assert resp.status_code == 204
resp = common.ping(api_base_url, HttpRequestTypes.DELETE)
assert resp.status_code == 204
with pytest.raises(UnspecifiedRequestType):
resp = common.ping(api_base_url, HttpRequestTypes.POST)