Metadata-Version: 2.1
Name: elasticsearch-test-py
Version: 1.0.0
Summary: Start Elasticsearch with Python (for testing or other purposes)
Home-page: https://github.com/spraakbanken/elasticsearch-test-py
Author: Språkbanken
Author-email: maria.ohrman@gu.se
License: MIT License
Description: Python Elasticsearch Test
        =========================
        
        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``.
        
        1. Create a normal virtualenv and activate it
        
        2. Install extras ``pip install .[testing]``
        
        3. Install the needed Python versions using ``pyenv``: ``3.4``, ``3.5``, ``3.6``, ``3.7``
        
        4. Setup virtualenvs for all but the Python version you are using, for example if you use ``3.4``
        
            ::
        
              $ pyenv virtualenv -p python3.5 3.5.6 py35
              $ pyenv virtualenv -p python3.6 3.6.6 py36
              $ pyenv virtualenv -p python3.7 3.7.1 py37
        
        5. Activate everything and run `tox`:
        
            ::
        
              $ pyenv shell py35 py36 py37
              $ source ./venv/bin/activate
              $ tox
        
        
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Database
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Testing
Provides-Extra: testing
