def elasticsearch_fixture_factory(executable, proc_name, port, **kwargs): """Create elasticsearch fixture pairs.""" proc = factories.elasticsearch_proc(executable, port=port, **kwargs) elasticsearch = factories.elasticsearch(proc_name) return proc, elasticsearch
import pytest from unittest.mock import patch from pytest_elasticsearch import factories from search import es_search # TODO: Change the path of this executable when running on docker elasticsearch_proc = factories.elasticsearch_proc( executable="/Users/kstathou/Desktop/elastic/elasticsearch-7.5.0/bin/elasticsearch", port=-1, index_store_type="fs", ) elasticsearch = factories.elasticsearch("elasticsearch_proc") class TestSuccessResponses: @pytest.fixture(autouse=True) def spam_index(self, elasticsearch): elasticsearch.indices.create(index="spam") elasticsearch.indices.put_mapping( { "properties": { "abstract": {"type": "text", "analyzer": "standard"}, "abstract_suggest": { "type": "text", "fields": {"keyword": {"type": "keyword", "ignore_above": 256}}, }, "author": { "properties": { "affiliation": { "type": "text",
"""Create elasticsearch fixture pairs.""" proc = factories.elasticsearch_proc(executable, port=port, **kwargs) elasticsearch = factories.elasticsearch(proc_name) return proc, elasticsearch # pylint:disable=invalid-name elasticsearch_proc_5_6, elasticsearch_5_6 = elasticsearch_fixture_factory( ELASTICSEARCH_EXECUTABLE_5_6, 'elasticsearch_proc_5_6', port=None) elasticsearch_proc_6_8, elasticsearch_6_8 = elasticsearch_fixture_factory( ELASTICSEARCH_EXECUTABLE_6_8, 'elasticsearch_proc_6_8', port=None) elasticsearch_proc_7_4, elasticsearch_7_4 = elasticsearch_fixture_factory( ELASTICSEARCH_EXECUTABLE_7_4, 'elasticsearch_proc_7_4', port=None) elasticsearch_proc_7_5, elasticsearch_7_5 = elasticsearch_fixture_factory( ELASTICSEARCH_EXECUTABLE_7_5, 'elasticsearch_proc_7_5', port=None) elasticsearch_proc_7_6, elasticsearch_7_6 = elasticsearch_fixture_factory( ELASTICSEARCH_EXECUTABLE_7_6, 'elasticsearch_proc_7_6', port=None) elasticsearch_proc_7_7, elasticsearch_7_7 = elasticsearch_fixture_factory( ELASTICSEARCH_EXECUTABLE_7_7, 'elasticsearch_proc_7_7', port=None) elasticsearch_proc_7_8, elasticsearch_7_8 = elasticsearch_fixture_factory( ELASTICSEARCH_EXECUTABLE_7_8, 'elasticsearch_proc_7_8', port=None) elasticsearch_proc_7_9, elasticsearch_7_9 = elasticsearch_fixture_factory( ELASTICSEARCH_EXECUTABLE_7_9, 'elasticsearch_proc_7_9', port=None) elasticsearch_proc2 = factories.elasticsearch_proc( executable=ELASTICSEARCH_EXECUTABLE_7_9, port=9393) elasticsearch_nooproc2 = factories.elasticsearch_noproc(port=9393) elasticsearch2 = factories.elasticsearch('elasticsearch_proc2') elasticsearch2_noop = factories.elasticsearch('elasticsearch_nooproc2') # pylint:enable=invalid-name
action='store', dest='elasticsearch_index_store_type', ) parser.addoption( '--elasticsearch-network-publish-host', action='store', dest='elasticsearch_network_publish_host', ) parser.addoption( '--elasticsearch-logs-prefix', action='store', dest='elasticsearch_logs_prefix', ) parser.addoption( '--elasticsearch-discovery-zen-ping-multicast-enabled', action='store', dest='elasticsearch_discovery_zen_ping_multicast_enabled', ) parser.addoption('--elasticsearch-port', action='store', dest='elasticsearch_port', help=_help_port) elasticsearch_proc = factories.elasticsearch_proc() elasticsearch = factories.elasticsearch('elasticsearch_proc')
"""Pytest-elasticsearch tests.""" from pytest_elasticsearch import factories def test_elastic_process(elasticsearch_proc): """Simple test for starting elasticsearch_proc.""" assert elasticsearch_proc.running() is True def test_elasticsarch(elasticsearch): """Test if elasticsearch fixtures connects to process.""" info = elasticsearch.info() assert info['status'] == 200 elasticsearch_proc_random = factories.elasticsearch_proc(port='?') elasticsearch_random = factories.elasticsearch('elasticsearch_proc_random') def test_random_port(elasticsearch_random): """Test if elasticsearch fixture can be started on random port.""" assert elasticsearch_random.info()['status'] == 200
assert info['status'] == 'green' @pytest.mark.parametrize('executable, expected_version', ((ELASTICSEARCH_EXECUTABLE_1_5_2, '1.5.2'), (ELASTICSEARCH_EXECUTABLE_2_4_6, '2.4.6'), (ELASTICSEARCH_EXECUTABLE_5_6_7, '5.6.7'), (ELASTICSEARCH_EXECUTABLE_6_2_3, '6.2.3'))) def test_version_extraction(executable, expected_version): """Verfiy if we can properly extract elasticsearch version.""" assert '{major}.{minor}.{patch}'.format( **factories.get_version_parts(executable)) == expected_version elasticsearch_proc_random = factories.elasticsearch_proc( ELASTICSEARCH_EXECUTABLE_1_5_2, port=None, configuration_path=ELASTICSEARCH_CONF_PATH_1_5_2) elasticsearch_random = factories.elasticsearch('elasticsearch_proc_random') def test_random_port(elasticsearch_random): """Test if elasticsearch fixture can be started on random port.""" assert elasticsearch_random.cluster.health()['status'] == 'green' def test_default_configuration(request): """Test default configuration.""" config = factories.return_config(request) assert config['logsdir'] == gettempdir() assert not config['port']
from pytest_elasticsearch import factories def test_elastic_process(elasticsearch_proc): """Simple test for starting elasticsearch_proc.""" assert elasticsearch_proc.running() is True def test_elasticsearch(elasticsearch): """Test if elasticsearch fixtures connects to process.""" info = elasticsearch.info() assert info['tagline'] == 'You Know, for Search' elasticsearch_proc_random = factories.elasticsearch_proc(port=None) elasticsearch_random = factories.elasticsearch('elasticsearch_proc_random') def test_random_port(elasticsearch_random): """Test if elasticsearch fixture can be started on random port.""" assert elasticsearch_random.info()['tagline'] == 'You Know, for Search' def test_default_configuration(request): """Test default configuration.""" config = factories.return_config(request) assert config['logsdir'] == gettempdir() assert not config['port'] assert config['host'] == '127.0.0.1'
"""Tests main conftest file.""" import warnings from pytest_elasticsearch import factories warnings.simplefilter("error", category=DeprecationWarning) elasticsearch_proc2 = factories.elasticsearch_proc(port=9393) elasticsearch_nooproc2 = factories.elasticsearch_noproc(port=9393) elasticsearch2 = factories.elasticsearch("elasticsearch_proc2") elasticsearch2_noop = factories.elasticsearch("elasticsearch_nooproc2") # pylint:enable=invalid-name
# This file is part of pytest-elasticsearch. # pytest-elasticsearch is free software: you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # pytest-elasticsearch is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Lesser General Public License for more details. # You should have received a copy of the GNU Lesser General Public License # along with pytest-elasticsearch. If not, see <http://www.gnu.org/licenses/>. """Pytest-elasticsearch py.test's plugin configuration.""" from pytest_elasticsearch import factories def pytest_addoption(parser): """Add plugin's configuration options.""" parser.addoption( '--elasticsearch-logsdir', action='store', default='/tmp', metavar='path', dest='logsdir', ) elasticsearch_proc = factories.elasticsearch_proc() elasticsearch = factories.elasticsearch('elasticsearch_proc')
ELASTICSEARCH_EXECUTABLE_1_5_2, 'elasticsearch_proc_1_5_2', port=None, configuration_path=ELASTICSEARCH_CONF_PATH_1_5_2 ) elasticsearch_proc_2_4_6, elasticsearch_2_4_6 = elasticsearch_fixture_factory( ELASTICSEARCH_EXECUTABLE_2_4_6, 'elasticsearch_proc_2_4_6', port=None, configuration_path=ELASTICSEARCH_CONF_PATH_2_4_6 ) elasticsearch_proc_5_6_7, elasticsearch_5_6_7 = elasticsearch_fixture_factory( ELASTICSEARCH_EXECUTABLE_5_6_7, 'elasticsearch_proc_5_6_7', port=None ) elasticsearch_proc_6_2_3, elasticsearch_6_2_3 = elasticsearch_fixture_factory( ELASTICSEARCH_EXECUTABLE_6_2_3, 'elasticsearch_proc_6_2_3', port=None ) elasticsearch_proc_random = factories.elasticsearch_proc( ELASTICSEARCH_EXECUTABLE_1_5_2, port=None, configuration_path=ELASTICSEARCH_CONF_PATH_1_5_2 ) elasticsearch_random = factories.elasticsearch('elasticsearch_proc_random') # pylint:enable=invalid-name @pytest.mark.parametrize('elasticsearch_proc_name', ( 'elasticsearch_proc_1_5_2', 'elasticsearch_proc_2_4_6', 'elasticsearch_proc_5_6_7', 'elasticsearch_proc_6_2_3' )) def test_elastic_process(request, elasticsearch_proc_name): """Simple test for starting elasticsearch_proc.""" elasticsearch_proc = request.getfixturevalue(elasticsearch_proc_name) assert elasticsearch_proc.running() is True
from pytest_elasticsearch import factories def test_elastic_process(elasticsearch_proc): """Simple test for starting elasticsearch_proc.""" assert elasticsearch_proc.running() is True def test_elasticsarch(elasticsearch): """Test if elasticsearch fixtures connects to process.""" info = elasticsearch.info() assert info['status'] == 200 elasticsearch_proc_random = factories.elasticsearch_proc(port=None) elasticsearch_random = factories.elasticsearch('elasticsearch_proc_random') def test_random_port(elasticsearch_random): """Test if elasticsearch fixture can be started on random port.""" assert elasticsearch_random.info()['status'] == 200 def test_default_configuration(request): """Test default configuration.""" config = factories.return_config(request) assert config['logsdir'] == gettempdir() assert not config['port'] assert config['host'] == '127.0.0.1'