131 lines
5.6 KiB
Python
131 lines
5.6 KiB
Python
|
#!/usr/bin/python
|
||
|
# coding: utf-8 -*-
|
||
|
# pylint: disable=logger-format-interpolation
|
||
|
# pylint: disable=dangerous-default-value
|
||
|
# flake8: noqa: W503
|
||
|
# flake8: noqa: W1202
|
||
|
|
||
|
from __future__ import (absolute_import, division, print_function)
|
||
|
|
||
|
import sys
|
||
|
from loguru import logger
|
||
|
import pytest
|
||
|
from eos_downloader.models.version import EosVersion, BASE_VERSION_STR
|
||
|
from tests.lib.dataset import eos_version
|
||
|
from tests.lib.fixtures import generate_test_ids_list
|
||
|
|
||
|
logger.remove()
|
||
|
logger.add(sys.stderr, level="DEBUG")
|
||
|
|
||
|
@pytest.mark.parametrize("EOS_VERSION", eos_version, ids=generate_test_ids_list(eos_version,key='version'))
|
||
|
def test_eos_version_from_str(EOS_VERSION):
|
||
|
version = EosVersion.from_str(EOS_VERSION['version'])
|
||
|
if EOS_VERSION['is_valid']:
|
||
|
assert version.major == EOS_VERSION['major']
|
||
|
assert version.minor == EOS_VERSION['minor']
|
||
|
assert version.patch == EOS_VERSION['patch']
|
||
|
assert version.rtype == EOS_VERSION['rtype']
|
||
|
else:
|
||
|
assert str(version) == BASE_VERSION_STR
|
||
|
|
||
|
|
||
|
@pytest.mark.parametrize("EOS_VERSION", eos_version, ids=generate_test_ids_list(eos_version,key='version'))
|
||
|
def test_eos_version_to_str(EOS_VERSION):
|
||
|
version = EosVersion(**EOS_VERSION)
|
||
|
if EOS_VERSION['is_valid']:
|
||
|
assert version.major == EOS_VERSION['major']
|
||
|
assert version.minor == EOS_VERSION['minor']
|
||
|
assert version.patch == EOS_VERSION['patch']
|
||
|
assert version.rtype == EOS_VERSION['rtype']
|
||
|
|
||
|
@pytest.mark.parametrize("EOS_VERSION", eos_version, ids=generate_test_ids_list(eos_version,key='version'))
|
||
|
def test_eos_version_branch(EOS_VERSION):
|
||
|
if EOS_VERSION['is_valid']:
|
||
|
version = EosVersion(**EOS_VERSION)
|
||
|
assert version.branch == f'{EOS_VERSION["major"]}.{EOS_VERSION["minor"]}'
|
||
|
|
||
|
@pytest.mark.parametrize("EOS_VERSION", eos_version, ids=generate_test_ids_list(eos_version,key='version'))
|
||
|
def test_eos_version_eq_operator(EOS_VERSION):
|
||
|
if not EOS_VERSION['is_valid']:
|
||
|
pytest.skip('not a valid version to test')
|
||
|
version = EosVersion(**EOS_VERSION)
|
||
|
logger.warning(f'version is: {version.dict()}')
|
||
|
assert version == version
|
||
|
|
||
|
@pytest.mark.parametrize("EOS_VERSION", eos_version, ids=generate_test_ids_list(eos_version,key='version'))
|
||
|
def test_eos_version_ge_operator(EOS_VERSION):
|
||
|
if not EOS_VERSION['is_valid']:
|
||
|
pytest.skip('not a valid version to test')
|
||
|
version = EosVersion(**EOS_VERSION)
|
||
|
version_b = EosVersion.from_str(BASE_VERSION_STR)
|
||
|
assert version >= version_b
|
||
|
|
||
|
@pytest.mark.parametrize("EOS_VERSION", eos_version, ids=generate_test_ids_list(eos_version,key='version'))
|
||
|
def test_eos_version_gs_operator(EOS_VERSION):
|
||
|
if not EOS_VERSION['is_valid']:
|
||
|
pytest.skip('not a valid version to test')
|
||
|
version = EosVersion(**EOS_VERSION)
|
||
|
version_b = EosVersion.from_str(BASE_VERSION_STR)
|
||
|
assert version > version_b
|
||
|
|
||
|
@pytest.mark.parametrize("EOS_VERSION", eos_version, ids=generate_test_ids_list(eos_version,key='version'))
|
||
|
def test_eos_version_le_operator(EOS_VERSION):
|
||
|
if not EOS_VERSION['is_valid']:
|
||
|
pytest.skip('not a valid version to test')
|
||
|
version = EosVersion(**EOS_VERSION)
|
||
|
version_b = EosVersion.from_str(BASE_VERSION_STR)
|
||
|
assert version_b <= version
|
||
|
|
||
|
@pytest.mark.parametrize("EOS_VERSION", eos_version, ids=generate_test_ids_list(eos_version,key='version'))
|
||
|
def test_eos_version_ls_operator(EOS_VERSION):
|
||
|
if not EOS_VERSION['is_valid']:
|
||
|
pytest.skip('not a valid version to test')
|
||
|
version = EosVersion(**EOS_VERSION)
|
||
|
version_b = EosVersion.from_str(BASE_VERSION_STR)
|
||
|
assert version_b < version
|
||
|
|
||
|
@pytest.mark.parametrize("EOS_VERSION", eos_version, ids=generate_test_ids_list(eos_version,key='version'))
|
||
|
def test_eos_version_ne_operator(EOS_VERSION):
|
||
|
if not EOS_VERSION['is_valid']:
|
||
|
pytest.skip('not a valid version to test')
|
||
|
version = EosVersion(**EOS_VERSION)
|
||
|
version_b = EosVersion.from_str(BASE_VERSION_STR)
|
||
|
assert version_b != version
|
||
|
|
||
|
@pytest.mark.parametrize("EOS_VERSION", eos_version, ids=generate_test_ids_list(eos_version,key='version'))
|
||
|
def test_eos_version_match(EOS_VERSION):
|
||
|
if not EOS_VERSION['is_valid']:
|
||
|
pytest.skip('not a valid version to test')
|
||
|
version = EosVersion(**EOS_VERSION)
|
||
|
assert version.match(f'=={EOS_VERSION["version"]}')
|
||
|
assert version.match(f'!={BASE_VERSION_STR}')
|
||
|
assert version.match(f'>={BASE_VERSION_STR}')
|
||
|
assert version.match(f'>{BASE_VERSION_STR}')
|
||
|
assert version.match('<=4.99.0F')
|
||
|
assert version.match('<4.99.0F')
|
||
|
|
||
|
@pytest.mark.parametrize("EOS_VERSION", eos_version, ids=generate_test_ids_list(eos_version,key='version'))
|
||
|
def test_eos_version_is_in_branch(EOS_VERSION):
|
||
|
if not EOS_VERSION['is_valid']:
|
||
|
pytest.skip('not a valid version to test')
|
||
|
version = EosVersion(**EOS_VERSION)
|
||
|
assert version.is_in_branch(f"{EOS_VERSION['major']}.{EOS_VERSION['minor']}")
|
||
|
|
||
|
@pytest.mark.parametrize("EOS_VERSION", eos_version, ids=generate_test_ids_list(eos_version,key='version'))
|
||
|
def test_eos_version_match_exception(EOS_VERSION):
|
||
|
if not EOS_VERSION['is_valid']:
|
||
|
pytest.skip('not a valid version to test')
|
||
|
with pytest.raises(Exception) as e_info:
|
||
|
version = EosVersion(**EOS_VERSION)
|
||
|
assert version.match(f'+={EOS_VERSION["version"]}')
|
||
|
logger.info(f'receive exception: {e_info}')
|
||
|
|
||
|
@pytest.mark.parametrize("EOS_VERSION", eos_version, ids=generate_test_ids_list(eos_version,key='version'))
|
||
|
def test_eos_version_compare_exception(EOS_VERSION):
|
||
|
if not EOS_VERSION['is_valid']:
|
||
|
pytest.skip('not a valid version to test')
|
||
|
with pytest.raises(Exception) as e_info:
|
||
|
version = EosVersion(**EOS_VERSION)
|
||
|
version._compare(BASE_VERSION_STR)
|
||
|
logger.info(f'receive exception: {e_info}')
|