From 26cac87f1cb90abc2fac2144a39ad88b3b70031d Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Tue, 10 Oct 2023 11:54:13 +0200 Subject: Adding upstream version 0.9.0. Signed-off-by: Daniel Baumann --- tests/lib/dataset.py | 143 ++++++++++++++++---------------- tests/lib/fixtures.py | 35 +++++--- tests/lib/helpers.py | 13 +-- tests/system/test_eos_download.py.old | 1 - tests/unit/test_eos_version.py | 152 +++++++++++++++++++++------------- tests/unit/test_object_downloader.py | 128 ++++++++++++++++------------ 6 files changed, 273 insertions(+), 199 deletions(-) (limited to 'tests') diff --git a/tests/lib/dataset.py b/tests/lib/dataset.py index 1286456..34175e9 100644 --- a/tests/lib/dataset.py +++ b/tests/lib/dataset.py @@ -5,12 +5,13 @@ # flake8: noqa: W503 # flake8: noqa: W1202 -from __future__ import (absolute_import, division, print_function) +from __future__ import absolute_import, division, print_function + import os + import eos_downloader -from eos_downloader.eos import EOSDownloader from eos_downloader.data import DATA_MAPPING - +from eos_downloader.eos import EOSDownloader # --------------------------------------------------------------- # # MOOCK data to use for testing @@ -18,99 +19,99 @@ from eos_downloader.data import DATA_MAPPING # Get Auth token # eos_token = os.getenv('ARISTA_TOKEN') -eos_token = os.getenv('ARISTA_TOKEN', 'invalid_token') -eos_token_invalid = 'invalid_token' +eos_token = os.getenv("ARISTA_TOKEN", "invalid_token") +eos_token_invalid = "invalid_token" eos_dataset_valid = [ { - 'image': 'EOS', - 'version': '4.26.3M', - 'software': 'EOS', - 'filename': 'EOS-4.26.3M.swi', - 'expected_hash': 'sha512sum', - 'remote_path': '/support/download/EOS-USA/Active Releases/4.26/EOS-4.26.3M/EOS-4.26.3M.swi', - 'compute_checksum': True + "image": "EOS", + "version": "4.26.3M", + "software": "EOS", + "filename": "EOS-4.26.3M.swi", + "expected_hash": "sha512sum", + "remote_path": "/support/download/EOS-USA/Active Releases/4.26/EOS-4.26.3M/EOS-4.26.3M.swi", + "compute_checksum": True, }, { - 'image': 'EOS', - 'version': '4.25.6M', - 'software': 'EOS', - 'filename': 'EOS-4.25.6M.swi', - 'expected_hash': 'md5sum', - 'remote_path': '/support/download/EOS-USA/Active Releases/4.25/EOS-4.25.6M/EOS-4.25.6M.swi', - 'compute_checksum': True + "image": "EOS", + "version": "4.25.6M", + "software": "EOS", + "filename": "EOS-4.25.6M.swi", + "expected_hash": "md5sum", + "remote_path": "/support/download/EOS-USA/Active Releases/4.25/EOS-4.25.6M/EOS-4.25.6M.swi", + "compute_checksum": True, }, { - 'image': 'vEOS-lab', - 'version': '4.25.6M', - 'software': 'EOS', - 'filename': 'vEOS-lab-4.25.6M.vmdk', - 'expected_hash': 'md5sum', - 'remote_path': '/support/download/EOS-USA/Active Releases/4.25/EOS-4.25.6M/vEOS-lab/vEOS-lab-4.25.6M.vmdk', - 'compute_checksum': False - } + "image": "vEOS-lab", + "version": "4.25.6M", + "software": "EOS", + "filename": "vEOS-lab-4.25.6M.vmdk", + "expected_hash": "md5sum", + "remote_path": "/support/download/EOS-USA/Active Releases/4.25/EOS-4.25.6M/vEOS-lab/vEOS-lab-4.25.6M.vmdk", + "compute_checksum": False, + }, ] eos_dataset_invalid = [ { - 'image': 'default', - 'version': '4.26.3M', - 'software': 'EOS', - 'filename': 'EOS-4.26.3M.swi', - 'expected_hash': 'sha512sum', - 'remote_path': '/support/download/EOS-USA/Active Releases/4.26/EOS-4.26.3M/EOS-4.26.3M.swi', - 'compute_checksum': True + "image": "default", + "version": "4.26.3M", + "software": "EOS", + "filename": "EOS-4.26.3M.swi", + "expected_hash": "sha512sum", + "remote_path": "/support/download/EOS-USA/Active Releases/4.26/EOS-4.26.3M/EOS-4.26.3M.swi", + "compute_checksum": True, } ] eos_version = [ { - 'version': 'EOS-4.23.1F', - 'is_valid': True, - 'major': 4, - 'minor': 23, - 'patch': 1, - 'rtype': 'F' + "version": "EOS-4.23.1F", + "is_valid": True, + "major": 4, + "minor": 23, + "patch": 1, + "rtype": "F", }, { - 'version': 'EOS-4.23.0', - 'is_valid': True, - 'major': 4, - 'minor': 23, - 'patch': 0, - 'rtype': None + "version": "EOS-4.23.0", + "is_valid": True, + "major": 4, + "minor": 23, + "patch": 0, + "rtype": None, }, { - 'version': 'EOS-4.23', - 'is_valid': True, - 'major': 4, - 'minor': 23, - 'patch': 0, - 'rtype': None + "version": "EOS-4.23", + "is_valid": True, + "major": 4, + "minor": 23, + "patch": 0, + "rtype": None, }, { - 'version': 'EOS-4.23.1M', - 'is_valid': True, - 'major': 4, - 'minor': 23, - 'patch': 1, - 'rtype': 'M' + "version": "EOS-4.23.1M", + "is_valid": True, + "major": 4, + "minor": 23, + "patch": 1, + "rtype": "M", }, { - 'version': 'EOS-4.23.1.F', - 'is_valid': True, - 'major': 4, - 'minor': 23, - 'patch': 1, - 'rtype': 'F' + "version": "EOS-4.23.1.F", + "is_valid": True, + "major": 4, + "minor": 23, + "patch": 1, + "rtype": "F", }, { - 'version': 'EOS-5.23.1F', - 'is_valid': False, - 'major': 4, - 'minor': 23, - 'patch': 1, - 'rtype': 'F' + "version": "EOS-5.23.1F", + "is_valid": False, + "major": 4, + "minor": 23, + "patch": 1, + "rtype": "F", }, -] \ No newline at end of file +] diff --git a/tests/lib/fixtures.py b/tests/lib/fixtures.py index 4515f9b..64b341b 100644 --- a/tests/lib/fixtures.py +++ b/tests/lib/fixtures.py @@ -5,13 +5,20 @@ # flake8: noqa: W503 # flake8: noqa: W1202 -from __future__ import (absolute_import, division, print_function) +from __future__ import absolute_import, division, print_function + import os +from typing import Any, Dict, List + import pytest -import eos_downloader -from typing import Dict, Any, List -from tests.lib.dataset import eos_dataset_valid, eos_dataset_invalid, eos_token, eos_token_invalid +import eos_downloader +from tests.lib.dataset import ( + eos_dataset_invalid, + eos_dataset_valid, + eos_token, + eos_token_invalid, +) @pytest.fixture @@ -19,17 +26,18 @@ from tests.lib.dataset import eos_dataset_valid, eos_dataset_invalid, eos_token, def create_download_instance(request, DOWNLOAD_INFO): # logger.info("Execute fixture to create class elements") request.cls.eos_downloader = eos_downloader.eos.EOSDownloader( - image=DOWNLOAD_INFO['image'], - software=DOWNLOAD_INFO['software'], - version=DOWNLOAD_INFO['version'], - token=eos_token, - hash_method='sha512sum') + image=DOWNLOAD_INFO["image"], + software=DOWNLOAD_INFO["software"], + version=DOWNLOAD_INFO["version"], + token=eos_token, + hash_method="sha512sum", + ) yield # logger.info('Cleanup test environment') - os.system('rm -f {}*'.format(DOWNLOAD_INFO['filename'])) + os.system("rm -f {}*".format(DOWNLOAD_INFO["filename"])) -def generate_test_ids_dict(val: Dict[str, Any], key: str = 'name') -> str: +def generate_test_ids_dict(val: Dict[str, Any], key: str = "name") -> str: """ generate_test_ids Helper to generate test ID for parametrize @@ -50,7 +58,8 @@ def generate_test_ids_dict(val: Dict[str, Any], key: str = 'name') -> str: return val[key] return "undefined_test" -def generate_test_ids_list(val: List[Dict[str, Any]], key: str = 'name') -> str: + +def generate_test_ids_list(val: List[Dict[str, Any]], key: str = "name") -> str: """ generate_test_ids Helper to generate test ID for parametrize @@ -66,4 +75,4 @@ def generate_test_ids_list(val: List[Dict[str, Any]], key: str = 'name') -> str: str Name of the configlet """ - return [ entry[key] if key in entry.keys() else 'unset_entry' for entry in val ] + return [entry[key] if key in entry.keys() else "unset_entry" for entry in val] diff --git a/tests/lib/helpers.py b/tests/lib/helpers.py index 308f2a5..67e914b 100644 --- a/tests/lib/helpers.py +++ b/tests/lib/helpers.py @@ -5,14 +5,13 @@ # flake8: noqa: W503 # flake8: noqa: W1202 -from __future__ import (absolute_import, division, print_function) +from __future__ import absolute_import, division, print_function import os from eos_downloader.data import DATA_MAPPING - def default_filename(version: str, info): """ default_filename Helper to build default filename @@ -31,10 +30,14 @@ def default_filename(version: str, info): """ if version is None or info is None: return None - return DATA_MAPPING[info['software']]['default']['prepend'] + '-' + version + '.swi' + return DATA_MAPPING[info["software"]]["default"]["prepend"] + "-" + version + ".swi" def is_on_github_actions(): """Check if code is running on a CI runner""" - if "CI" not in os.environ or not os.environ["CI"] or "GITHUB_RUN_ID" not in os.environ: - return False \ No newline at end of file + if ( + "CI" not in os.environ + or not os.environ["CI"] + or "GITHUB_RUN_ID" not in os.environ + ): + return False diff --git a/tests/system/test_eos_download.py.old b/tests/system/test_eos_download.py.old index 6ae56fe..91e60a5 100644 --- a/tests/system/test_eos_download.py.old +++ b/tests/system/test_eos_download.py.old @@ -45,4 +45,3 @@ class TestEosDownload_valid(): @pytest.mark.eos_download def test_download_local(self, DOWNLOAD_INFO): self.eos_downloader.download_local(file_path='.', checksum=DOWNLOAD_INFO['compute_checksum']) - diff --git a/tests/unit/test_eos_version.py b/tests/unit/test_eos_version.py index 1b97ffc..82f1269 100644 --- a/tests/unit/test_eos_version.py +++ b/tests/unit/test_eos_version.py @@ -5,126 +5,166 @@ # flake8: noqa: W503 # flake8: noqa: W1202 -from __future__ import (absolute_import, division, print_function) +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 loguru import logger + +from eos_downloader.models.version import BASE_VERSION_STR, EosVersion 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')) + +@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'] + 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')) +@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'] + 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')) +@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']: + 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')) + +@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') + 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()}') + 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')) + +@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') + 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')) + +@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') + 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')) + +@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') + 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')) + +@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') + 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')) + +@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') + 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')) + +@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') + 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') + 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')) +@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') + 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')) + +@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') + 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}') + logger.info(f"receive exception: {e_info}") + -@pytest.mark.parametrize("EOS_VERSION", eos_version, ids=generate_test_ids_list(eos_version,key='version')) +@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') + 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}') + logger.info(f"receive exception: {e_info}") diff --git a/tests/unit/test_object_downloader.py b/tests/unit/test_object_downloader.py index 8237b1c..d178dfc 100644 --- a/tests/unit/test_object_downloader.py +++ b/tests/unit/test_object_downloader.py @@ -14,30 +14,41 @@ from loguru import logger import eos_downloader from eos_downloader.data import DATA_MAPPING from eos_downloader.eos import EOSDownloader -from tests.lib.dataset import eos_dataset_invalid, eos_dataset_valid, eos_token, eos_token_invalid +from tests.lib.dataset import ( + eos_dataset_invalid, + eos_dataset_valid, + eos_token, + eos_token_invalid, +) from tests.lib.fixtures import create_download_instance from tests.lib.helpers import default_filename, is_on_github_actions logger.remove() logger.add(sys.stderr, level="DEBUG") + @pytest.mark.usefixtures("create_download_instance") -@pytest.mark.parametrize("DOWNLOAD_INFO", eos_dataset_valid, ids=['EOS-sha512', 'EOS-md5' ,'vEOS-lab-no-hash']) +@pytest.mark.parametrize( + "DOWNLOAD_INFO", + eos_dataset_valid, + ids=["EOS-sha512", "EOS-md5", "vEOS-lab-no-hash"], +) @pytest.mark.eos_download -class TestEosDownload_valid(): +class TestEosDownload_valid: def test_data(self, DOWNLOAD_INFO): - logger.info(f'test input: {DOWNLOAD_INFO}') - logger.info(f'test build: {self.eos_downloader.__dict__}') + logger.info(f"test input: {DOWNLOAD_INFO}") + logger.info(f"test build: {self.eos_downloader.__dict__}") def test_eos_download_create(self, DOWNLOAD_INFO): my_download = eos_downloader.eos.EOSDownloader( - image=DOWNLOAD_INFO['image'], - software=DOWNLOAD_INFO['software'], - version=DOWNLOAD_INFO['version'], + image=DOWNLOAD_INFO["image"], + software=DOWNLOAD_INFO["software"], + version=DOWNLOAD_INFO["version"], token=eos_token, - hash_method='sha512sum') + hash_method="sha512sum", + ) logger.info(my_download) - assert isinstance(my_download, eos_downloader.eos.EOSDownloader) + assert isinstance(my_download, eos_downloader.eos.EOSDownloader) def test_eos_download_repr_string(self, DOWNLOAD_INFO): expected = f"{DOWNLOAD_INFO['software']} - {DOWNLOAD_INFO['image']} - {DOWNLOAD_INFO['version']}" @@ -45,47 +56,56 @@ class TestEosDownload_valid(): assert str(self.eos_downloader) == expected def test_eos_download_build_filename(self, DOWNLOAD_INFO): - assert self.eos_downloader._build_filename() == DOWNLOAD_INFO['filename'] + assert self.eos_downloader._build_filename() == DOWNLOAD_INFO["filename"] - @pytest.mark.dependency(name='authentication') - @pytest.mark.skipif(eos_token == eos_token_invalid, reason="Token is not set correctly") + @pytest.mark.dependency(name="authentication") + @pytest.mark.skipif( + eos_token == eos_token_invalid, reason="Token is not set correctly" + ) @pytest.mark.skipif(is_on_github_actions(), reason="Running on Github Runner") # @pytest.mark.xfail(reason="Deliberate - CI not set for testing AUTH") @pytest.mark.webtest def test_eos_download_authenticate(self): assert self.eos_downloader.authenticate() is True - @pytest.mark.dependency(depends=["authentication"], scope='class') + @pytest.mark.dependency(depends=["authentication"], scope="class") @pytest.mark.webtest def test_eos_download_get_remote_file_path(self, DOWNLOAD_INFO): - assert self.eos_downloader._get_remote_filepath() == DOWNLOAD_INFO['remote_path'] + assert ( + self.eos_downloader._get_remote_filepath() == DOWNLOAD_INFO["remote_path"] + ) - @pytest.mark.dependency(depends=["authentication"], scope='class') + @pytest.mark.dependency(depends=["authentication"], scope="class") @pytest.mark.webtest def test_eos_download_get_file_url(self, DOWNLOAD_INFO): - url = self.eos_downloader._get_url(remote_file_path = DOWNLOAD_INFO['remote_path']) + url = self.eos_downloader._get_url( + remote_file_path=DOWNLOAD_INFO["remote_path"] + ) logger.info(url) - assert 'https://downloads.arista.com/EOS-USA/Active%20Releases/' in url + assert "https://downloads.arista.com/EOS-USA/Active%20Releases/" in url -@pytest.mark.usefixtures("create_download_instance") -@pytest.mark.parametrize("DOWNLOAD_INFO", eos_dataset_invalid, ids=['EOS-FAKE']) -class TestEosDownload_invalid(): +@pytest.mark.usefixtures("create_download_instance") +@pytest.mark.parametrize("DOWNLOAD_INFO", eos_dataset_invalid, ids=["EOS-FAKE"]) +class TestEosDownload_invalid: def test_data(self, DOWNLOAD_INFO): - logger.info(f'test input: {dict(DOWNLOAD_INFO)}') - logger.info(f'test build: {self.eos_downloader.__dict__}') + logger.info(f"test input: {dict(DOWNLOAD_INFO)}") + logger.info(f"test build: {self.eos_downloader.__dict__}") def test_eos_download_login_error(self, DOWNLOAD_INFO): my_download = eos_downloader.eos.EOSDownloader( - image=DOWNLOAD_INFO['image'], - software=DOWNLOAD_INFO['software'], - version=DOWNLOAD_INFO['version'], + image=DOWNLOAD_INFO["image"], + software=DOWNLOAD_INFO["software"], + version=DOWNLOAD_INFO["version"], token=eos_token_invalid, - hash_method=DOWNLOAD_INFO['expected_hash']) + hash_method=DOWNLOAD_INFO["expected_hash"], + ) assert my_download.authenticate() is False - @pytest.mark.dependency(name='authentication') - @pytest.mark.skipif(eos_token == eos_token_invalid, reason="Token is not set correctly") + @pytest.mark.dependency(name="authentication") + @pytest.mark.skipif( + eos_token == eos_token_invalid, reason="Token is not set correctly" + ) @pytest.mark.skipif(is_on_github_actions(), reason="Running on Github Runner") # @pytest.mark.xfail(reason="Deliberate - CI not set for testing AUTH") @pytest.mark.webtest @@ -96,46 +116,48 @@ class TestEosDownload_invalid(): # @pytest.mark.skip(reason="Not yet implemented in lib") def test_eos_file_name_with_incorrect_software(self, DOWNLOAD_INFO): - self.eos_downloader.software = 'FAKE' - logger.info(f'test build: {self.eos_downloader.__dict__}') + self.eos_downloader.software = "FAKE" + logger.info(f"test build: {self.eos_downloader.__dict__}") with pytest.raises(ValueError) as e_info: result = self.eos_downloader._build_filename() - logger.info(f'receive exception: {e_info}') - self.eos_downloader.software = DOWNLOAD_INFO['software'] + logger.info(f"receive exception: {e_info}") + self.eos_downloader.software = DOWNLOAD_INFO["software"] @pytest.mark.webtest - @pytest.mark.dependency(depends=["authentication"], scope='class') - def test_eos_download_get_remote_file_path_for_invlaid_software(self, DOWNLOAD_INFO): - self.eos_downloader.software = 'FAKE' - logger.info(f'Platform set to: {self.eos_downloader.software}') - logger.info(f'test build: {self.eos_downloader.__dict__}') + @pytest.mark.dependency(depends=["authentication"], scope="class") + def test_eos_download_get_remote_file_path_for_invlaid_software( + self, DOWNLOAD_INFO + ): + self.eos_downloader.software = "FAKE" + logger.info(f"Platform set to: {self.eos_downloader.software}") + logger.info(f"test build: {self.eos_downloader.__dict__}") with pytest.raises(ValueError) as e_info: result = self.eos_downloader._build_filename() - logger.info(f'receive exception: {e_info}') - self.eos_downloader.software = DOWNLOAD_INFO['software'] + logger.info(f"receive exception: {e_info}") + self.eos_downloader.software = DOWNLOAD_INFO["software"] # IMAGE TESTING def test_eos_file_name_with_incorrect_image(self, DOWNLOAD_INFO): - self.eos_downloader.image = 'FAKE' - logger.info(f'Image set to: {self.eos_downloader.image}') - assert DOWNLOAD_INFO['filename'] == self.eos_downloader._build_filename() - self.eos_downloader.software == DOWNLOAD_INFO['image'] + self.eos_downloader.image = "FAKE" + logger.info(f"Image set to: {self.eos_downloader.image}") + assert DOWNLOAD_INFO["filename"] == self.eos_downloader._build_filename() + self.eos_downloader.software == DOWNLOAD_INFO["image"] @pytest.mark.webtest - @pytest.mark.dependency(depends=["authentication"], scope='class') + @pytest.mark.dependency(depends=["authentication"], scope="class") def test_eos_download_get_remote_file_path_for_invlaid_image(self, DOWNLOAD_INFO): - self.eos_downloader.image = 'FAKE' - logger.info(f'Image set to: {self.eos_downloader.image}') + self.eos_downloader.image = "FAKE" + logger.info(f"Image set to: {self.eos_downloader.image}") assert self.eos_downloader.authenticate() is True - assert DOWNLOAD_INFO['filename'] == self.eos_downloader._build_filename() - self.eos_downloader.image = DOWNLOAD_INFO['image'] + assert DOWNLOAD_INFO["filename"] == self.eos_downloader._build_filename() + self.eos_downloader.image = DOWNLOAD_INFO["image"] # VERSION TESTING @pytest.mark.webtest - @pytest.mark.dependency(depends=["authentication"], scope='class') + @pytest.mark.dependency(depends=["authentication"], scope="class") def test_eos_download_get_remote_file_path_for_invlaid_version(self, DOWNLOAD_INFO): - self.eos_downloader.version = 'FAKE' - logger.info(f'Version set to: {self.eos_downloader.version}') - assert self.eos_downloader._get_remote_filepath() == '' \ No newline at end of file + self.eos_downloader.version = "FAKE" + logger.info(f"Version set to: {self.eos_downloader.version}") + assert self.eos_downloader._get_remote_filepath() == "" -- cgit v1.2.3