Elasticsearch¶
Integration with Elasticsearch
The following Docker images are supported:
Installation¶
For Elasticsearch 7.x:
pip install pytest-databases[elasticsearch7]
For Elasticsearch 8.x:
pip install pytest-databases[elasticsearch8]
Usage Example¶
For Elasticsearch 7.x:
from elasticsearch7 import Elasticsearch
from pytest_databases.docker.elastic_search import ElasticsearchService
pytest_plugins = ["pytest_databases.docker.elastic_search"]
def test(elasticsearch_7_service: ElasticsearchService) -> None:
with Elasticsearch(
hosts=[
{
"host": elasticsearch_7_service.host,
"port": elasticsearch_7_service.port,
"scheme": elasticsearch_7_service.scheme,
}
],
verify_certs=False,
http_auth=(elasticsearch_7_service.user, elasticsearch_7_service.password),
) as client:
info = client.info()
assert info["version"]["number"] == "7.17.19"
For Elasticsearch 8.x:
from elasticsearch8 import Elasticsearch
from pytest_databases.docker.elastic_search import ElasticsearchService
pytest_plugins = ["pytest_databases.docker.elastic_search"]
def test(elasticsearch_8_service: ElasticsearchService) -> None:
with Elasticsearch(
hosts=[
{
"host": elasticsearch_8_service.host,
"port": elasticsearch_8_service.port,
"scheme": elasticsearch_8_service.scheme,
}
],
verify_certs=False,
basic_auth=(elasticsearch_8_service.user, elasticsearch_8_service.password),
) as client:
info = client.info()
assert info["version"]["number"] == "8.13.0"
Available Fixtures¶
elasticsearch_service_memory_limit
: The memory limit for the Elasticsearch service (default:500m
)elasticsearch_service
: A fixture that provides an Elasticsearch service.
The following version-specific fixtures are also available:
elasticsearch_7_service
: Elasticsearch 7.xelasticsearch_8_service
: Elasticsearch 8.x
Service API¶
- class pytest_databases.docker.elastic_search.ElasticsearchService(host, port, scheme, user, password, database)[source]¶
Bases:
ServiceContainer
- __init__(host, port, scheme, user, password, database)¶
- pytest_databases.docker.elastic_search.elasticsearch7_responsive(scheme, host, port, user, password, database)[source]¶
- Return type:
- pytest_databases.docker.elastic_search.elasticsearch8_responsive(scheme, host, port, user, password, database)[source]¶
- Return type:
- pytest_databases.docker.elastic_search.elasticsearch_7_service(docker_service, elasticsearch_service_memory_limit)[source]¶
- Return type:
- pytest_databases.docker.elastic_search.elasticsearch_8_service(docker_service, elasticsearch_service_memory_limit)[source]¶
- Return type: