This document describes the current stable version of pytest_celery (1.3). For development docs, go here.

Source code for pytest_celery.vendors.redis.broker.fixtures

"""The pytest-celery plugin provides a set of built-in components called
:ref:`vendors`.

This module is part of the Redis Broker vendor.
"""

# mypy: disable-error-code="misc"

from __future__ import annotations

import pytest
from pytest_docker_tools import container
from pytest_docker_tools import fxtr

from pytest_celery.vendors.redis.broker.api import RedisTestBroker
from pytest_celery.vendors.redis.container import RedisContainer
from pytest_celery.vendors.redis.defaults import REDIS_CONTAINER_TIMEOUT


[docs] @pytest.fixture def celery_redis_broker(default_redis_broker: RedisContainer) -> RedisTestBroker: """Creates a RedisTestBroker instance. Responsible for tearing down the node. Args: default_redis_broker (RedisContainer): Instantiated RedisContainer. """ broker = RedisTestBroker(default_redis_broker) yield broker broker.teardown()
[docs] @pytest.fixture def default_redis_broker_cls() -> type[RedisContainer]: """Default Redis broker container class. Override to apply custom configuration globally. See also: :ref:`vendor-class`. Returns: type[RedisContainer]: API for managing the vendor's container. """ return RedisContainer
default_redis_broker = container( image="{default_redis_broker_image}", ports=fxtr("default_redis_broker_ports"), environment=fxtr("default_redis_broker_env"), network="{default_pytest_celery_network.name}", wrapper_class=RedisContainer, timeout=REDIS_CONTAINER_TIMEOUT, command=fxtr("default_redis_broker_command"), )
[docs] @pytest.fixture def default_redis_broker_command(default_redis_broker_cls: type[RedisContainer]) -> list[str]: """Command to run the container. Args: default_redis_broker_cls (type[RedisContainer]): See also: :ref:`vendor-class`. Returns: list[str]: Docker CMD instruction. """ return default_redis_broker_cls.command()
[docs] @pytest.fixture def default_redis_broker_env(default_redis_broker_cls: type[RedisContainer]) -> dict: """Environment variables for this vendor. Args: default_rabbitmq_broker_cls (type[RedisContainer]): See also: :ref:`vendor-class`. Returns: dict: Items to pass to the container's environment. """ return default_redis_broker_cls.initial_env()
[docs] @pytest.fixture def default_redis_broker_image(default_redis_broker_cls: type[RedisContainer]) -> str: """Sets the image name for this vendor. Args: default_rabbitmq_broker_cls (type[RedisContainer]): See also: :ref:`vendor-class`. Returns: str: Docker image name. """ return default_redis_broker_cls.image()
[docs] @pytest.fixture def default_redis_broker_ports(default_redis_broker_cls: type[RedisContainer]) -> dict: """Port bindings for this vendor. Args: default_redis_broker_cls (type[RedisContainer]): See also: :ref:`vendor-class`. Returns: dict: Port bindings. """ return default_redis_broker_cls.ports()