52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
|
import pytest
|
||
|
from pydantic import TypeAdapter
|
||
|
|
||
|
from libretime_shared.config._fields import (
|
||
|
AnyHttpUrlStr,
|
||
|
StrNoLeadingSlash,
|
||
|
StrNoTrailingSlash,
|
||
|
)
|
||
|
|
||
|
|
||
|
@pytest.mark.parametrize(
|
||
|
"data, expected",
|
||
|
[
|
||
|
("something/", "something"),
|
||
|
("something//", "something"),
|
||
|
("something/keep", "something/keep"),
|
||
|
("/something/", "/something"),
|
||
|
],
|
||
|
)
|
||
|
def test_str_no_trailing_slash(data, expected):
|
||
|
found = TypeAdapter(StrNoTrailingSlash).validate_python(data)
|
||
|
assert found == expected
|
||
|
|
||
|
|
||
|
@pytest.mark.parametrize(
|
||
|
"data, expected",
|
||
|
[
|
||
|
("/something", "something"),
|
||
|
("//something", "something"),
|
||
|
("keep/something", "keep/something"),
|
||
|
("/something/", "something/"),
|
||
|
],
|
||
|
)
|
||
|
def test_str_no_leading_slash(data, expected):
|
||
|
found = TypeAdapter(StrNoLeadingSlash).validate_python(data)
|
||
|
assert found == expected
|
||
|
|
||
|
|
||
|
@pytest.mark.parametrize(
|
||
|
"data, expected",
|
||
|
[
|
||
|
("http://localhost:8080", "http://localhost:8080"),
|
||
|
("http://localhost:8080/path/", "http://localhost:8080/path"),
|
||
|
("https://example.com/", "https://example.com"),
|
||
|
("https://example.com/keep", "https://example.com/keep"),
|
||
|
("https://example.com/keep/", "https://example.com/keep"),
|
||
|
],
|
||
|
)
|
||
|
def test_any_http_url_str(data, expected):
|
||
|
found = TypeAdapter(AnyHttpUrlStr).validate_python(data)
|
||
|
assert found == expected
|