Testing¶
Usage¶
Elastic Connect supplies a set of convinience options and fixtures for testing with pytest. To use these features just
import elastic_connect.testing
in your tests or preferably conftest.py. This automatically uses some fixtures, makes available others and adds
custom options for running the tests.
Options¶
--index-noclean- Don’t clear the indices. Debugging only, may break some tests.
--es-host, default="localhost"- Elasticsearch hostname
--es-port, default="9200"- Elasticsearch port
--es-prefix, default="test"- Elasticsearch indices prefix
--namespace, default=False- Also run tests for two namespaces
Autouse Fixtures¶
elastic_connect.testing.fix_es()[source]¶@pytest.fixture(scope=”session”, autouse=True)
Fixes the default connection to elasticsearch according to
--es-hostand--es-portoptions. Waits for all namespaces to be ready. :yield: None
elastic_connect.testing.prefix_indices(request)[source]¶@pytest.fixture(scope=”session”, autouse=True)
Set the prefix for all indices according to
--es-prefixoption, just to be safe. So with the default option a model which uses indexadmin_usersin production will use indextestadmin_usersin the tests.
Fixtures¶
elastic_connect.testing.fix_index(model_classes)[source]¶@pytest.fixture(scope=”module”)
Creates indices for supplied
model_classes. Deletes these indices after the tests according to the--index-nocleanoption.
Parameters: model_classes – list of model classes Yield: None
elastic_connect.testing.second_namespace()[source]¶@pytest.fixture(scope=”module”)
Returns the Namespace object of a second elasticsearch cluster. This cluster must be available on localhost:18400. You may use this fixture as a base for your own connections to multiple elasticsearch clusters. :return: Namespace