1
0
Fork 0
eos-downloader/tests/lib/fixtures.py

70 lines
1.9 KiB
Python
Raw Normal View History

#!/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 ]