Files
website-v2/versions/tests/fixtures.py
2025-12-17 09:30:10 -05:00

181 lines
4.1 KiB
Python

import datetime
import hashlib
import pytest
import random
from model_bakery import baker
from versions.models import OperatingSystems
def fake_checksum():
return hashlib.sha256(random.randbytes(200)).hexdigest()
@pytest.fixture
def beta_version(db):
# Make version
v = baker.make(
"versions.Version",
name="boost-1.79.0-beta",
description="Some awesome description of the library",
release_date=datetime.date.today(),
beta=True,
fully_imported=True,
)
# Make version download file
c = fake_checksum()
baker.make(
"versions.VersionFile",
version=v,
checksum=c,
url="https://example.com/version_1.tar.gz",
)
return v
@pytest.fixture
def version(db):
# Make version
yesterday = datetime.date.today() - datetime.timedelta(days=1)
v = baker.make(
"versions.Version",
name="boost-1.79.0",
description="Some awesome description of the library",
release_date=yesterday,
fully_imported=True,
)
# Make version download file
c = fake_checksum()
baker.make(
"versions.VersionFile",
version=v,
checksum=c,
url="https://example.com/version_1.tar.gz",
)
return v
@pytest.fixture
def not_imported_version(db):
# Make version that is not fully imported
yesterday = datetime.date.today() - datetime.timedelta(days=1)
v = baker.make(
"versions.Version",
name="boost-1.80.0",
description="A version that is not fully imported",
release_date=yesterday,
fully_imported=False,
)
# Make version download file
c = fake_checksum()
baker.make(
"versions.VersionFile",
version=v,
checksum=c,
url="https://example.com/version_1.tar.gz",
)
return v
@pytest.fixture
def inactive_version(db):
# Make version
yesterday = datetime.date.today() - datetime.timedelta(days=1)
v = baker.make(
"versions.Version",
name="boost-1.0.0",
description="Some old description of the library",
release_date=yesterday,
active=False,
fully_imported=True,
)
# Make version download file
c = fake_checksum()
baker.make(
"versions.VersionFile",
version=v,
checksum=c,
url="https://example.com/old_version.tar.gz",
)
return v
@pytest.fixture
def old_version(db):
# Make version
last_year = datetime.date.today() - datetime.timedelta(days=365)
v = baker.make(
"versions.Version",
name="boost-1.70.0",
description="Some awesome description of the library",
release_date=last_year,
fully_imported=True,
)
# Make version download file
c = fake_checksum()
baker.make(
"versions.VersionFile",
version=v,
checksum=c,
url="https://example.com/version_1_fake.tar.gz",
)
return v
@pytest.fixture
def full_version_one(db):
"""Build a full version with 3 attached files"""
yesterday = datetime.date.today() - datetime.timedelta(days=1)
base_url = "https://example.com/"
base_url_suffix = ".tar.gz"
v = baker.make(
"versions.Version",
name="boost-1.79.0",
description="Some old description of the library for v1.79.0",
release_date=yesterday,
active=False,
fully_imported=True,
)
f1_url = f"{base_url}version1{base_url_suffix}"
c1 = fake_checksum()
baker.make(
"versions.VersionFile",
version=v,
operating_system=OperatingSystems.UNIX,
url=f1_url,
checksum=c1,
)
f2_url = f"{base_url}version1_2{base_url_suffix}"
c2 = fake_checksum()
baker.make(
"versions.VersionFile",
version=v,
operating_system=OperatingSystems.UNIX,
url=f2_url,
checksum=c2,
)
f3_url = f"{base_url}version1_3{base_url_suffix}"
c3 = fake_checksum()
baker.make(
"versions.VersionFile",
version=v,
operating_system=OperatingSystems.WINDOWS,
url=f3_url,
checksum=c3,
)
return v