1
0
Fork 0

Adding upstream version 0.8.1.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-05 13:43:43 +01:00
parent b16cc97368
commit 55e5e7ac79
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
49 changed files with 4592 additions and 0 deletions

0
tests/lib/__init__.py Normal file
View file

116
tests/lib/dataset.py Normal file
View file

@ -0,0 +1,116 @@
#!/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 os
import eos_downloader
from eos_downloader.eos import EOSDownloader
from eos_downloader.data import DATA_MAPPING
# --------------------------------------------------------------- #
# MOOCK data to use for testing
# --------------------------------------------------------------- #
# Get Auth token
# eos_token = os.getenv('ARISTA_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.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
}
]
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
}
]
eos_version = [
{
'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',
'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.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'
},
]

69
tests/lib/fixtures.py Normal file
View file

@ -0,0 +1,69 @@
#!/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 os
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
@pytest.fixture
@pytest.mark.parametrize("DOWNLOAD_INFO", eos_dataset_valid)
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')
yield
# logger.info('Cleanup test environment')
os.system('rm -f {}*'.format(DOWNLOAD_INFO['filename']))
def generate_test_ids_dict(val: Dict[str, Any], key: str = 'name') -> str:
"""
generate_test_ids Helper to generate test ID for parametrize
Only related to SYSTEM_CONFIGLETS_TESTS structure
Parameters
----------
val : dict
A configlet test structure
Returns
-------
str
Name of the configlet
"""
if key in val.keys():
# note this wouldn't show any hours/minutes/seconds
return val[key]
return "undefined_test"
def generate_test_ids_list(val: List[Dict[str, Any]], key: str = 'name') -> str:
"""
generate_test_ids Helper to generate test ID for parametrize
Only related to SYSTEM_CONFIGLETS_TESTS structure
Parameters
----------
val : dict
A configlet test structure
Returns
-------
str
Name of the configlet
"""
return [ entry[key] if key in entry.keys() else 'unset_entry' for entry in val ]

40
tests/lib/helpers.py Normal file
View file

@ -0,0 +1,40 @@
#!/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 os
from eos_downloader.data import DATA_MAPPING
def default_filename(version: str, info):
"""
default_filename Helper to build default filename
Parameters
----------
version : str
EOS version
info : dict
TEST Inputs
Returns
-------
str
Filename
"""
if version is None or info is None:
return None
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