Merging upstream version 0.12.0.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
f45bc3d463
commit
8d2f70e3c7
77 changed files with 23610 additions and 2331 deletions
0
tests/unit/models/__init__.py
Normal file
0
tests/unit/models/__init__.py
Normal file
47
tests/unit/models/test_data.py
Normal file
47
tests/unit/models/test_data.py
Normal file
|
@ -0,0 +1,47 @@
|
|||
# coding: utf-8 -*-
|
||||
"""Tests for the eos_downloader.models.data.DataMapping class."""
|
||||
|
||||
import pytest
|
||||
|
||||
from eos_downloader.models.data import DataMapping, ImageInfo
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def data_mapping():
|
||||
return DataMapping(
|
||||
CloudVision={"ova": ImageInfo(extension=".ova", prepend="cvp" )},
|
||||
EOS={
|
||||
"64": ImageInfo(extension=".swi", prepend="EOS64"),
|
||||
"default": ImageInfo(extension=".swi", prepend="EOS" ),
|
||||
},
|
||||
)
|
||||
|
||||
|
||||
def test_filename_valid_cloudvision(data_mapping):
|
||||
result = data_mapping.filename("CloudVision", "ova", "1.2.3")
|
||||
assert result == "cvp-1.2.3.ova"
|
||||
|
||||
|
||||
def test_filename_valid_eos(data_mapping):
|
||||
result = data_mapping.filename("EOS", "64", "4.28.0F")
|
||||
assert result == "EOS64-4.28.0F.swi"
|
||||
|
||||
|
||||
def test_filename_eos_default(data_mapping):
|
||||
with pytest.raises(ValueError) as exc_info:
|
||||
data_mapping.filename("EOS", "unknown", "4.28.0F")
|
||||
assert str(exc_info.value) == "No default configuration found for image type unknown"
|
||||
|
||||
|
||||
def test_filename_invalid_software(data_mapping):
|
||||
with pytest.raises(
|
||||
ValueError, match="Incorrect value for software InvalidSoftware"
|
||||
):
|
||||
data_mapping.filename("InvalidSoftware", "ova", "1.2.3")
|
||||
|
||||
|
||||
def test_filename_invalid_type_no_default(data_mapping):
|
||||
with pytest.raises(
|
||||
ValueError, match="No default configuration found for image type invalid"
|
||||
):
|
||||
data_mapping.filename("CloudVision", "invalid", "1.2.3")
|
99
tests/unit/models/test_version.py
Normal file
99
tests/unit/models/test_version.py
Normal file
|
@ -0,0 +1,99 @@
|
|||
# coding: utf-8 -*-
|
||||
"""Tests for the eos_downloader.models.version module."""
|
||||
|
||||
import sys
|
||||
import pytest
|
||||
from loguru import logger
|
||||
from eos_downloader.models.version import SemVer, EosVersion, CvpVersion
|
||||
|
||||
logger.remove()
|
||||
logger.add(sys.stderr, level="DEBUG")
|
||||
|
||||
|
||||
def test_semver_from_str():
|
||||
version = SemVer.from_str("4.23.3M")
|
||||
assert version.major == 4
|
||||
assert version.minor == 23
|
||||
assert version.patch == 3
|
||||
assert version.rtype == "M"
|
||||
|
||||
def test_semver_str():
|
||||
version = SemVer(major=4, minor=23, patch=3, rtype="M")
|
||||
assert str(version) == "4.23.3M"
|
||||
|
||||
def test_semver_branch():
|
||||
version = SemVer(major=4, minor=23, patch=3, rtype="M")
|
||||
assert version.branch == "4.23"
|
||||
|
||||
def test_semver_comparison():
|
||||
version1 = SemVer(major=4, minor=23, patch=3, rtype="M")
|
||||
version2 = SemVer.from_str("4.24.1F")
|
||||
assert version1 < version2
|
||||
assert version1 != version2
|
||||
assert version2 > version1
|
||||
assert version1 <= version2
|
||||
assert version2 >= version1
|
||||
|
||||
def test_semver_match():
|
||||
version = SemVer.from_str("4.23.3M")
|
||||
assert version.match("<=4.23.3M")
|
||||
assert not version.match("==4.24.0F")
|
||||
|
||||
def test_semver_is_in_branch():
|
||||
version = SemVer.from_str("4.23.3M")
|
||||
assert version.is_in_branch("4.23")
|
||||
assert not version.is_in_branch("4.24")
|
||||
|
||||
def test_eosversion_from_str():
|
||||
version = EosVersion.from_str("4.32.1F")
|
||||
assert version.major == 4
|
||||
assert version.minor == 32
|
||||
assert version.patch == 1
|
||||
assert version.rtype == "F"
|
||||
|
||||
def test_cvpversion_from_str():
|
||||
version = CvpVersion.from_str("2024.1.0")
|
||||
assert version.major == 2024
|
||||
assert version.minor == 1
|
||||
assert version.patch == 0
|
||||
assert version.rtype is None
|
||||
|
||||
def test_semver_invalid_str():
|
||||
version = SemVer.from_str("invalid.version")
|
||||
assert version.major == 0
|
||||
assert version.minor == 0
|
||||
assert version.patch == 0
|
||||
assert version.rtype is None
|
||||
|
||||
def test_semver_compare_invalid_type():
|
||||
version = SemVer(major=4, minor=23, patch=3, rtype="M")
|
||||
with pytest.raises(ValueError):
|
||||
version._compare("invalid")
|
||||
|
||||
def test_eosversion_invalid_str():
|
||||
version = EosVersion.from_str("invalid.version")
|
||||
assert version.major == 0
|
||||
assert version.minor == 0
|
||||
assert version.patch == 0
|
||||
assert version.rtype is None
|
||||
|
||||
def test_cvpversion_invalid_str():
|
||||
version = CvpVersion.from_str("invalid.version")
|
||||
assert version.major == 0
|
||||
assert version.minor == 0
|
||||
assert version.patch == 0
|
||||
assert version.rtype is None
|
||||
|
||||
def test_semver_match_invalid_operator():
|
||||
version = SemVer.from_str("4.23.3M")
|
||||
with pytest.raises(ValueError):
|
||||
version.match("+=4.23.3M")
|
||||
|
||||
def test_semver_is_in_branch_invalid():
|
||||
version = SemVer.from_str("4.23.3M")
|
||||
assert not version.is_in_branch("invalid.branch")
|
||||
|
||||
def test_semver_compare_none():
|
||||
version1 = SemVer(major=4, minor=23, patch=3, rtype="M")
|
||||
version2 = SemVer(major=4, minor=23, patch=3, rtype=None)
|
||||
assert version1._compare(version2) == 0
|
Loading…
Add table
Add a link
Reference in a new issue