2024-11-05 09:11:03 -07:00
|
|
|
import json
|
2018-08-14 10:20:46 -05:00
|
|
|
import os
|
2023-04-20 13:01:58 -07:00
|
|
|
|
2018-08-14 10:20:46 -05:00
|
|
|
import pytest
|
2024-11-05 09:11:03 -07:00
|
|
|
import requests
|
2020-05-27 06:59:11 +01:00
|
|
|
|
2024-11-05 09:11:03 -07:00
|
|
|
API_URL = (
|
|
|
|
"https://packages.broadcom.com/artifactory/api/storage/saltproject-generic/windows"
|
|
|
|
)
|
2018-08-14 10:20:46 -05:00
|
|
|
|
|
|
|
|
2020-12-08 22:22:46 +00:00
|
|
|
@pytest.fixture(scope="session")
|
2020-05-27 06:59:11 +01:00
|
|
|
def target_python_version():
|
2022-08-11 16:26:40 +01:00
|
|
|
return 3
|
2020-05-27 06:59:11 +01:00
|
|
|
|
|
|
|
|
2020-12-08 22:22:46 +00:00
|
|
|
@pytest.fixture(scope="session")
|
2020-05-27 06:59:11 +01:00
|
|
|
def target_salt_version():
|
2024-11-05 09:11:03 -07:00
|
|
|
|
2024-11-04 14:39:59 -07:00
|
|
|
target_salt = os.environ.get("SaltVersion", "")
|
2024-11-05 09:11:03 -07:00
|
|
|
html_response = requests.get(API_URL)
|
|
|
|
content = json.loads(html_response.text)
|
|
|
|
folders = content["children"]
|
|
|
|
versions = {}
|
|
|
|
for folder in folders:
|
|
|
|
if folder["folder"]:
|
|
|
|
version = folder["uri"].strip("/")
|
|
|
|
versions[version] = version
|
|
|
|
# We're trying to get the latest major version and latest overall
|
|
|
|
maj_version = version.split(".")[0]
|
|
|
|
versions[maj_version] = version
|
|
|
|
versions["latest"] = version
|
|
|
|
|
2023-04-20 13:01:58 -07:00
|
|
|
if target_salt.startswith("v"):
|
|
|
|
target_salt = target_salt[1:]
|
2024-11-05 09:11:03 -07:00
|
|
|
if target_salt not in versions:
|
|
|
|
pytest.skip(f"Invalid testing version: {target_salt}")
|
2024-11-12 10:59:50 -07:00
|
|
|
if target_salt in (
|
|
|
|
"default",
|
|
|
|
"latest",
|
|
|
|
"master",
|
|
|
|
"nightly",
|
|
|
|
"stable",
|
|
|
|
"onedir",
|
|
|
|
"git",
|
|
|
|
):
|
2020-05-27 06:59:11 +01:00
|
|
|
pytest.skip("Don't have a specific salt version to test against")
|
2024-11-05 09:11:03 -07:00
|
|
|
return versions[target_salt]
|