Load settings from .toml files, .env and environment variables. Also ensures a ROOT_PATH environment variable is set. If ROOT_PATH is not set and no root_path argument is passed, the current working directory is used as root. Settings paths can be a single .toml file, a folder containing .toml files or a list of .toml files and folders. If a folder is passed, all .toml files in the folder are loaded. If settings path is None, only .env and environment variables are loaded. If settings_path are relative paths, they are joined with the root_path argument.
47 lines
997 B
Python
47 lines
997 B
Python
import json
|
|
|
|
import pytest
|
|
|
|
from pyinfra.config.loader import load_settings, local_pyinfra_root_path
|
|
from pyinfra.queue.manager import QueueManager
|
|
from pyinfra.storage.connection import get_storage
|
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
def settings():
|
|
return load_settings(local_pyinfra_root_path / "config/")
|
|
|
|
|
|
@pytest.fixture(scope="class")
|
|
def storage(storage_backend, settings):
|
|
settings.storage.backend = storage_backend
|
|
|
|
storage = get_storage(settings)
|
|
storage.make_bucket()
|
|
|
|
yield storage
|
|
storage.clear_bucket()
|
|
|
|
|
|
@pytest.fixture(scope="session")
|
|
def queue_manager(settings):
|
|
settings.rabbitmq_heartbeat = 10
|
|
settings.connection_sleep = 5
|
|
queue_manager = QueueManager(settings)
|
|
yield queue_manager
|
|
|
|
|
|
@pytest.fixture
|
|
def input_message():
|
|
return json.dumps(
|
|
{
|
|
"targetFilePath": "test/target.json.gz",
|
|
"responseFilePath": "test/response.json.gz",
|
|
}
|
|
)
|
|
|
|
|
|
@pytest.fixture
|
|
def stop_message():
|
|
return "STOP"
|