47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
# 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")
|