summaryrefslogtreecommitdiffstats
path: root/tests/unit/test_eos_version.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/test_eos_version.py')
-rw-r--r--tests/unit/test_eos_version.py130
1 files changed, 130 insertions, 0 deletions
diff --git a/tests/unit/test_eos_version.py b/tests/unit/test_eos_version.py
new file mode 100644
index 0000000..1b97ffc
--- /dev/null
+++ b/tests/unit/test_eos_version.py
@@ -0,0 +1,130 @@
+#!/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}')