elasticsearch-py test suite
===========================
Warning - by default the tests will try and connect to `localhost:9200` and
will destroy all contents of given cluster!
Running the tests
-----------------
To simply run the tests just execute the `run_tests.py` script or invoke
`python setup.py test`. The behavior is driven by environmental variables:
* `TEST_ES_SERVER` - can contain "hostname[:port]" of running es cluster
* `TEST_ES_CONNECTION` - name of the connection class to use from
`elasticsearch.connection` module. If you want to run completely with your
own see section on customizing tests.
* `TEST_ES_YAML_DIR` - path to the yaml test suite contained in the
elasticsearch repo. Defaults to `$TEST_ES_REPO/rest-api-spec/test`
* `TEST_ES_REPO` - path to the elasticsearch repo, by default it will look in
the same directory as `elasticsearch-py` is in. It will not be used if
`TEST_ES_YAML_DIR` is specified directly.
* `TEST_ES_NOFETCH` - controls if we should fetch new updates to elasticsearch
repo and reset it's version to the sha used to build the current es server.
Defaults to `False` which means we will fetch the elasticsearch repo and
`git checkout` the sha used to build the server.
Alternatively, if you wish to control what you are doing you have several additional options:
* `run_tests.py` will pass any parameters specified to `nosetests`
* you can just run your favorite runner in the `test_elasticsearch` directory
(verified to work with nose and py.test) and bypass the fetch logic entirely.
Customizing the tests
---------------------
You can create a `local.py` file in the `test_elasticsearch` directory which
should contain a `get_client` function:
def get_client(hosts, ** kwargs):
...
If this file exists the function will be used instead of the built in one to
construct the client used for any integration tests. You can use this to make
sure your plugins and extensions work with `elasticsearch-py`.