Start Elasticsearch using Python.
Settings
elasticsearch_test.ElasticsearchTest( port=1234 es_path='/home/maria/elasticsearch-5.2.4' data_dir='/home/maria/es-data' es_java_opts='-Xms512m -Xmx512m' )
port
Default: 9200
es_path
Path to the Elasticsearch directory (home of /bin). Default: uses $ES_HOME
es_java_opts
Sets $ES_JAVA_OPTS for process to this value if present.
data_dir
Directory to place /data and /logs in. Default: uses tempfile.
Running
import time
import elasticsearch_test
instance = elasticsearch_test.ElasticsearchTest()
# This blocks until either an error is found
# or Elasticsearch has been initialized.
instance.start()
# or
instance.start(block=False)
while True:
if instance.is_started():
break
time.sleep(1)
Testing
Use it as a resource::
import elasticsearch_test
import elasticsearch
with elasticsearch_test.ElasticsearchTest() as instance:
connection_info = instance.get_connection_info()
client = elasticsearch.Elasticsearch(connection_info)
Use it as a Pytest fixture::
import elasticsearch_test
@pytest.fixture(scope="session")
def es():
instance = elasticsearch_test.ElasticsearchTest()
instance.start()
yield instance
instance.stop()
When using data_dir, if there are preexisting data in the directory, you should also wait for the data to be initialized::
with elasticsearch_test.ElasticsearchTest(data_dir='my_data') as instance:
while not instance.is_data_initialized():
time.sleep(1)
# do something!
Test this package
Needed: pyenv and the plugin pyenv-virtualenv.
Create a normal virtualenv and activate it
Install extras pip install .[testing]
Install the needed Python versions using pyenv: 3.8, 3.9, 3.10, 3.11
Setup virtualenvs for all but the Python version you are using, for example if you use 3.8
$ pyenv virtualenv -p python3.9 3.9.8 py39 $ pyenv virtualenv -p python3.10 3.10.8 py310 $ pyenv virtualenv -p python3.11 3.11.0 py311
Setup path to Elasticsearch
$ export ES_HOME=/opt/elasticsearch-6.8.23/
Activate everything and run tox:
$ pyenv shell py39 py310 py311 $ source ./venv/bin/activate $ tox
Release files for elasticsearch-test-py 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| elasticsearch-test-py-1.2.0.tar.gz | 4.9 kB | Details |
Release files / elasticsearch-test-py-1.2.0.tar.gz
| Download URL | elasticsearch-test-py-1.2.0.tar.gz |
|---|---|
| Size | 4.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ca1ccf6206fec245da2c77fa1ad865c3a423b235929f216f9f8f62fe84556bf9
|
|
BLAKE2b-256 checksum How to use checksums |
ce175e5cced1bb8c5242b9bdfdb7c965f3a918bbc2635bae9dab7c72ed36a76c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.10.8
|