mirror of
https://github.com/arcan1s/ahriman.git
synced 2025-04-24 07:17:17 +00:00
74 lines
1.8 KiB
Python
74 lines
1.8 KiB
Python
import pytest
|
|
|
|
from collections import namedtuple
|
|
from typing import Any, Dict, List
|
|
from unittest.mock import MagicMock
|
|
|
|
from ahriman.core.configuration import Configuration
|
|
from ahriman.core.upload.github import Github
|
|
from ahriman.core.upload.rsync import Rsync
|
|
from ahriman.core.upload.s3 import S3
|
|
|
|
|
|
_s3_object = namedtuple("s3_object", ["key", "e_tag", "delete"])
|
|
|
|
|
|
@pytest.fixture
|
|
def github(configuration: Configuration) -> Github:
|
|
"""
|
|
fixture for github synchronization
|
|
:param configuration: configuration fixture
|
|
:return: github test instance
|
|
"""
|
|
return Github("x86_64", configuration)
|
|
|
|
|
|
@pytest.fixture
|
|
def github_release() -> Dict[str, Any]:
|
|
"""
|
|
fixture for the github release object
|
|
:return: github test release object
|
|
"""
|
|
return {
|
|
"url": "release_url",
|
|
"assets_url": "assets_url",
|
|
"upload_url": "upload_url{?name,label}",
|
|
"tag_name": "x86_64",
|
|
"name": "x86_64",
|
|
"assets": [{
|
|
"url": "asset_url",
|
|
"name": "asset_name",
|
|
}],
|
|
"body": None,
|
|
}
|
|
|
|
|
|
@pytest.fixture
|
|
def rsync(configuration: Configuration) -> Rsync:
|
|
"""
|
|
fixture for rsync synchronization
|
|
:param configuration: configuration fixture
|
|
:return: rsync test instance
|
|
"""
|
|
return Rsync("x86_64", configuration)
|
|
|
|
|
|
@pytest.fixture
|
|
def s3(configuration: Configuration) -> S3:
|
|
"""
|
|
fixture for S3 synchronization
|
|
:param configuration: configuration fixture
|
|
:return: S3 test instance
|
|
"""
|
|
return S3("x86_64", configuration)
|
|
|
|
|
|
@pytest.fixture
|
|
def s3_remote_objects() -> List[_s3_object]:
|
|
"""
|
|
fixture for boto3 like S3 objects
|
|
:return: boto3 like S3 objects test instance
|
|
"""
|
|
delete_mock = MagicMock()
|
|
return list(map(lambda item: _s3_object(f"x86_64/{item}", f"\"{item}\"", delete_mock), ["a", "b", "c"]))
|