60 lines
1.7 KiB
Python
60 lines
1.7 KiB
Python
import datetime
|
|
from configparser import ConfigParser
|
|
|
|
import pytest
|
|
|
|
from api_clients import utils
|
|
|
|
|
|
def test_time_in_seconds():
|
|
time = datetime.time(hour=0, minute=3, second=34, microsecond=649600)
|
|
assert abs(utils.time_in_seconds(time) - 214.65) < 0.009
|
|
|
|
|
|
def test_time_in_milliseconds():
|
|
time = datetime.time(hour=0, minute=0, second=0, microsecond=500000)
|
|
assert utils.time_in_milliseconds(time) == 500
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"payload, expected",
|
|
[({}, "http"), ({"base_port": 80}, "http"), ({"base_port": 443}, "https")],
|
|
)
|
|
@pytest.mark.parametrize(
|
|
"use_config",
|
|
[False, True],
|
|
)
|
|
def test_get_protocol(payload, use_config, expected):
|
|
config = ConfigParser() if use_config else {}
|
|
config["general"] = {**payload}
|
|
|
|
assert utils.get_protocol(config) == expected
|
|
|
|
|
|
@pytest.mark.parametrize("payload", [{}, {"base_port": 80}])
|
|
@pytest.mark.parametrize("use_config", [False, True])
|
|
@pytest.mark.parametrize(
|
|
"values, expected",
|
|
[
|
|
(["yes", "Yes", "True", "true", True], "https"),
|
|
(["no", "No", "False", "false", False], "http"),
|
|
],
|
|
)
|
|
def test_get_protocol_force_https(payload, use_config, values, expected):
|
|
for value in values:
|
|
config = ConfigParser() if use_config else {}
|
|
config["general"] = {**payload, "force_ssl": value}
|
|
assert utils.get_protocol(config) == expected
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"payload, expected",
|
|
[
|
|
("00:00:00.500000", datetime.time(microsecond=500000)),
|
|
("00:04:30.092540", datetime.time(minute=4, second=30, microsecond=92540)),
|
|
("00:04:30", datetime.time(minute=4, second=30)),
|
|
],
|
|
)
|
|
def test_fromisoformat(payload, expected):
|
|
assert utils.fromisoformat(payload) == expected
|