diff --git a/.dependabot/config.yml b/.dependabot/config.yml new file mode 100644 index 00000000..c77885a4 --- /dev/null +++ b/.dependabot/config.yml @@ -0,0 +1,8 @@ +version: 1 +update_configs: + - package_manager: "python" + directory: "/" + update_schedule: "daily" + automerged_updates: + - match: + dependency_name: "*" \ No newline at end of file diff --git a/.travis.install-elasticsearch.sh b/.travis.install-elasticsearch.sh index 81b7877a..2aa97b60 100644 --- a/.travis.install-elasticsearch.sh +++ b/.travis.install-elasticsearch.sh @@ -3,9 +3,16 @@ function install_from_zip { wget $1 -O out unzip out sudo mv $2 /opt/$2 + /opt/$2/bin/elasticsearch -Vv } -install_from_zip https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.5.2.zip elasticsearch-1.5.2 -install_from_zip https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-2.4.6.zip elasticsearch-2.4.6 -install_from_zip https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.7.zip elasticsearch-5.6.7 -install_from_zip https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.3.zip elasticsearch-6.2.3 +function install_from_targz { + wget $1 -O out + tar -zxf out + sudo mv $2 /opt/$2 + /opt/$2/bin/elasticsearch -Vv +} + +install_from_zip https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.16.zip elasticsearch-5.6.16 +install_from_zip https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.2.zip elasticsearch-6.8.2 +install_from_targz https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-linux-x86_64.tar.gz elasticsearch-7.3.0 diff --git a/src/pytest_elasticsearch/factories.py b/src/pytest_elasticsearch/factories.py index 08d6a715..43af093f 100644 --- a/src/pytest_elasticsearch/factories.py +++ b/src/pytest_elasticsearch/factories.py @@ -50,11 +50,13 @@ def get_version_parts(executable): try: output = subprocess.check_output([executable, '-Vv']).decode('utf-8') match = re.match( - r'Version: (?P\d)\.(?P\d)\.(?P\d)', output + r'Version: (?P\d)\.(?P\d)\.(?P\d+)', output ) if not match: - raise RuntimeError("Elasticsearch version is not recognized. " - "It is probably not supported.") + raise RuntimeError( + "Elasticsearch version is not recognized. " + "It is probably not supported. \n" + "Output is: " + output) version = match.groupdict() return parse_version( '.'.join([version['major'], version['minor'], version['patch']]) @@ -136,7 +138,7 @@ def command_from(version): --index.store.type={index_store_type} ''' # it is known to work for 5.x.x; 6.x.x; - if version <= parse_version('7.0.0'): + if version >= parse_version('5.0.0'): return ''' {deamon} -p {pidfile} -E http.port={port} diff --git a/tests/test_elastic.py b/tests/test_elastic.py index 6441afe1..d06c4535 100644 --- a/tests/test_elastic.py +++ b/tests/test_elastic.py @@ -4,12 +4,9 @@ from pytest_elasticsearch import factories -ELASTICSEARCH_CONF_PATH_1_5_2 = '/opt/elasticsearch-1.5.2/config' -ELASTICSEARCH_CONF_PATH_2_4_6 = '/opt/elasticsearch-2.4.6/config' -ELASTICSEARCH_EXECUTABLE_1_5_2 = '/opt/elasticsearch-1.5.2/bin/elasticsearch' -ELASTICSEARCH_EXECUTABLE_2_4_6 = '/opt/elasticsearch-2.4.6/bin/elasticsearch' -ELASTICSEARCH_EXECUTABLE_5_6_7 = '/opt/elasticsearch-5.6.7/bin/elasticsearch' -ELASTICSEARCH_EXECUTABLE_6_2_3 = '/opt/elasticsearch-6.2.3/bin/elasticsearch' +ELASTICSEARCH_EXECUTABLE_5_6 = '/opt/elasticsearch-5.6.16/bin/elasticsearch' +ELASTICSEARCH_EXECUTABLE_6_8 = '/opt/elasticsearch-6.8.2/bin/elasticsearch' +ELASTICSEARCH_EXECUTABLE_7_3 = '/opt/elasticsearch-7.3.0/bin/elasticsearch' def elasticsearch_fixture_factory(executable, proc_name, port, **kwargs): @@ -20,34 +17,33 @@ def elasticsearch_fixture_factory(executable, proc_name, port, **kwargs): # pylint:disable=invalid-name -elasticsearch_proc_1_5_2, elasticsearch_1_5_2 = elasticsearch_fixture_factory( - ELASTICSEARCH_EXECUTABLE_1_5_2, 'elasticsearch_proc_1_5_2', - port=None, configuration_path=ELASTICSEARCH_CONF_PATH_1_5_2 +elasticsearch_proc_5_6, elasticsearch_5_6 = elasticsearch_fixture_factory( + ELASTICSEARCH_EXECUTABLE_5_6, 'elasticsearch_proc_5_6', port=None ) -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_6_8, elasticsearch_6_8 = elasticsearch_fixture_factory( + ELASTICSEARCH_EXECUTABLE_6_8, 'elasticsearch_proc_6_8', port=None ) -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_7_3, elasticsearch_7_3 = elasticsearch_fixture_factory( + ELASTICSEARCH_EXECUTABLE_7_3, 'elasticsearch_proc_7_3', 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('executable, expected_version', ( + (ELASTICSEARCH_EXECUTABLE_5_6, '5.6.16'), + (ELASTICSEARCH_EXECUTABLE_6_8, '6.8.2'), + (ELASTICSEARCH_EXECUTABLE_7_3, '7.3.0'), +)) +def test_version_extraction(executable, expected_version): + """Verfiy if we can properly extract elasticsearch version.""" + ver = factories.get_version_parts(executable) + assert ver.base_version == expected_version + + @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' + 'elasticsearch_proc_5_6', + 'elasticsearch_proc_6_8', + 'elasticsearch_proc_7_3', )) def test_elastic_process(request, elasticsearch_proc_name): """Simple test for starting elasticsearch_proc.""" @@ -56,10 +52,9 @@ def test_elastic_process(request, elasticsearch_proc_name): @pytest.mark.parametrize('elasticsearch_name', ( - 'elasticsearch_1_5_2', - 'elasticsearch_2_4_6', - 'elasticsearch_5_6_7', - 'elasticsearch_6_2_3' + 'elasticsearch_5_6', + 'elasticsearch_6_8', + 'elasticsearch_7_3', )) def test_elasticsarch(request, elasticsearch_name): """Test if elasticsearch fixtures connects to process.""" @@ -68,25 +63,6 @@ def test_elasticsarch(request, elasticsearch_name): 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.""" - ver = factories.get_version_parts(executable) - assert ver.base_version == expected_version - - -def test_random_port( # pylint:disable=redefined-outer-name - 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)