summaryrefslogtreecommitdiffstats
path: root/tests/unit/test_object_downloader.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2023-10-10 09:54:17 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2023-10-10 09:54:17 +0000
commitb0554023303fe8656173d3dfbd0d2449145df38e (patch)
treedd749f47419b53ca3a5ec7f7bbe2590b8aafc041 /tests/unit/test_object_downloader.py
parentReleasing debian version 0.8.2-1. (diff)
downloadeos-downloader-b0554023303fe8656173d3dfbd0d2449145df38e.tar.xz
eos-downloader-b0554023303fe8656173d3dfbd0d2449145df38e.zip
Merging upstream version 0.9.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--tests/unit/test_object_downloader.py128
1 files changed, 75 insertions, 53 deletions
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() == ""