Skip to content

Commit

Permalink
#19 Add Version validator (2)
Browse files Browse the repository at this point in the history
add pytests
  • Loading branch information
dostuffthatmatters committed Aug 7, 2024
1 parent f0bb840 commit a335b91
Showing 1 changed file with 50 additions and 3 deletions.
53 changes: 50 additions & 3 deletions tests/test_validators.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
import pydantic
import tum_esm_utils
from tum_esm_utils.validators import StrictFilePath, StrictDirectoryPath, Version


def test_strict_path_validators() -> None:
class Config(pydantic.BaseModel):
f: tum_esm_utils.validators.StrictFilePath
d: tum_esm_utils.validators.StrictDirectoryPath
f: StrictFilePath
d: StrictDirectoryPath

test_file = tum_esm_utils.files.rel_to_abs_path("../pyproject.toml")
test_dir = tum_esm_utils.files.rel_to_abs_path("..")

c = Config(f=test_file, d=test_dir)
assert isinstance(c.f, tum_esm_utils.validators.StrictFilePath)
assert isinstance(c.f, StrictFilePath)
assert isinstance(c.f.root, str)
assert set(c.model_dump().keys()) == {"f", "d"}

Expand All @@ -34,3 +35,49 @@ class Config(pydantic.BaseModel):
{"f": "someinvalidfile", "d": "someinvaliddir"},
context={"ignore-path-existence": True},
)


def test_version_validator() -> None:
for valid_string in [
"0.0.0", "1.2.3", "1.2.3-alpha.1", "1.2.3-alpha.30", "1.2.3-beta.2",
"1.2.3-rc.70"
]:
v = Version(valid_string)
assert v.as_identifier() == valid_string
assert v.as_tag() == f"v{valid_string}"

for invalid_string in [
"0.0",
"1.2.3-alpha",
"1.2.3-alpha.1.2",
"1.2.3-beta.2.3",
"1.2.3-rc.70.1",
"1",
"-1.1.0",
"1.1.0-",
"1.1.0-alpha-",
"1.1.0-beta.",
"1.1.0-rc",
]:
try:
v = Version(invalid_string)
except pydantic.ValidationError:
pass
else:
raise AssertionError(
f"ValidationError not raised for invalid version string '{invalid_string}'"
)

assert Version("1.2.3-alpha.1") > Version("1.2.3-alpha.0")
assert Version("1.2.3-alpha.1") < Version("1.2.3-alpha.2")
assert Version("1.2.3-alpha.1") == Version("1.2.3-alpha.1")
assert Version("1.2.3-alpha.1") != Version("1.2.3-alpha.2")
assert Version("1.2.3") > Version("1.2.2")
assert Version("1.2.3") < Version("1.2.4")
assert Version("10.2.3") > Version("1.2.3")
assert Version("10.6.9") < Version("10.7.8")
assert Version("10.6.9-alpha.1") > Version("10.6.8-beta.3")
assert Version("10.6.9-alpha.4") < Version("10.6.9-beta.3")
assert Version("10.6.9-alpha.4") < Version("10.6.9-rc.3")
assert Version("10.6.9-rc.4") > Version("10.6.9-beta.3")
assert Version("10.6.9-rc.4") < Version("10.6.9-rc.5")

0 comments on commit a335b91

Please sign in to comment.