Source code for swh.core.s3.pytest_plugin

# Copyright (C) 2025  The Software Heritage developers
# See the AUTHORS file at the top-level directory of this distribution
# License: GNU General Public License version 3, or any later version
# See top-level LICENSE file for more information

import os
from pathlib import Path

import pytest


[docs] def add_files_to_s3_bucket( files_path: Path, bucket: str, prefix: str, ): import boto3 s3 = boto3.client("s3", region_name="us-east-1") s3.create_bucket(Bucket=bucket) for path in files_path.rglob("**/*"): if path.is_file(): relative_path = path.relative_to(files_path) key = os.path.join(prefix, relative_path) s3.upload_file( Filename=str(path), Bucket=bucket, Key=key, ExtraArgs={ "ACL": "public-read", }, )
[docs] @pytest.fixture def s3_bucket_name(): return "testbucket"
[docs] @pytest.fixture def s3_archives_url(s3_bucket_name): return f"s3://{s3_bucket_name}/archives/"
[docs] @pytest.fixture def test_archives_path(): from swh.core import tests return Path(tests.__file__).parent / "data" / "archives"
[docs] @pytest.fixture def mocked_aws( test_archives_path, s3_bucket_name, ): from moto import mock_aws with mock_aws(): add_files_to_s3_bucket( test_archives_path, s3_bucket_name, prefix="archives", ) yield