2222import time
2323from datetime import datetime
2424from typing import Any , AsyncGenerator , Dict , Generator , Tuple , cast
25- from unittest import SkipTest , TestCase
25+ from unittest import SkipTest
2626from unittest .mock import AsyncMock , Mock
2727
2828import pytest_asyncio
5353 ELASTICSEARCH_URL = "http://localhost:9200"
5454
5555
56- def get_test_client (wait : bool = True , ** kwargs : Any ) -> Elasticsearch :
56+ def get_test_client (url , wait : bool = True , ** kwargs : Any ) -> Elasticsearch :
5757 # construct kwargs from the environment
5858 kw : Dict [str , Any ] = {"request_timeout" : 30 }
59-
60- if "PYTHON_CONNECTION_CLASS" in os .environ :
61- kw ["node_class" ] = os .environ ["PYTHON_CONNECTION_CLASS" ]
62-
6359 kw .update (kwargs )
64- client = Elasticsearch (ELASTICSEARCH_URL , ** kw )
60+ client = Elasticsearch (url , ** kw )
6561
6662 # wait for yellow status
6763 for tries_left in range (100 if wait else 1 , 0 , - 1 ):
@@ -76,15 +72,13 @@ def get_test_client(wait: bool = True, **kwargs: Any) -> Elasticsearch:
7672 raise SkipTest ("Elasticsearch failed to start." )
7773
7874
79- async def get_async_test_client (wait : bool = True , ** kwargs : Any ) -> AsyncElasticsearch :
75+ async def get_async_test_client (
76+ url , wait : bool = True , ** kwargs : Any
77+ ) -> AsyncElasticsearch :
8078 # construct kwargs from the environment
8179 kw : Dict [str , Any ] = {"request_timeout" : 30 }
82-
83- if "PYTHON_CONNECTION_CLASS" in os .environ :
84- kw ["node_class" ] = os .environ ["PYTHON_CONNECTION_CLASS" ]
85-
8680 kw .update (kwargs )
87- client = AsyncElasticsearch (ELASTICSEARCH_URL , ** kw )
81+ client = AsyncElasticsearch (url , ** kw )
8882
8983 # wait for yellow status
9084 for tries_left in range (100 if wait else 1 , 0 , - 1 ):
@@ -100,36 +94,6 @@ async def get_async_test_client(wait: bool = True, **kwargs: Any) -> AsyncElasti
10094 raise SkipTest ("Elasticsearch failed to start." )
10195
10296
103- class ElasticsearchTestCase (TestCase ):
104- client : Elasticsearch
105-
106- @staticmethod
107- def _get_client () -> Elasticsearch :
108- return get_test_client ()
109-
110- @classmethod
111- def setup_class (cls ) -> None :
112- cls .client = cls ._get_client ()
113-
114- def teardown_method (self , _ : Any ) -> None :
115- # Hidden indices expanded in wildcards in ES 7.7
116- expand_wildcards = ["open" , "closed" ]
117- if self .es_version () >= (7 , 7 ):
118- expand_wildcards .append ("hidden" )
119-
120- self .client .indices .delete_data_stream (
121- name = "*" , expand_wildcards = expand_wildcards
122- )
123- self .client .indices .delete (index = "*" , expand_wildcards = expand_wildcards )
124- self .client .indices .delete_template (name = "*" )
125- self .client .indices .delete_index_template (name = "*" )
126-
127- def es_version (self ) -> Tuple [int , ...]:
128- if not hasattr (self , "_es_version" ):
129- self ._es_version = _get_version (self .client .info ()["version" ]["number" ])
130- return self ._es_version
131-
132-
13397def _get_version (version_string : str ) -> Tuple [int , ...]:
13498 if "." not in version_string :
13599 return ()
@@ -138,19 +102,23 @@ def _get_version(version_string: str) -> Tuple[int, ...]:
138102
139103
140104@fixture (scope = "session" )
141- def client () -> Elasticsearch :
105+ def client (elasticsearch_url ) -> Elasticsearch :
142106 try :
143- connection = get_test_client (wait = "WAIT_FOR_ES" in os .environ )
107+ connection = get_test_client (
108+ elasticsearch_url , wait = "WAIT_FOR_ES" in os .environ
109+ )
144110 add_connection ("default" , connection )
145111 return connection
146112 except SkipTest :
147113 skip ()
148114
149115
150116@pytest_asyncio .fixture
151- async def async_client () -> AsyncGenerator [AsyncElasticsearch , None ]:
117+ async def async_client (elasticsearch_url ) -> AsyncGenerator [AsyncElasticsearch , None ]:
152118 try :
153- connection = await get_async_test_client (wait = "WAIT_FOR_ES" in os .environ )
119+ connection = await get_async_test_client (
120+ elasticsearch_url , wait = "WAIT_FOR_ES" in os .environ
121+ )
154122 add_async_connection ("default" , connection )
155123 yield connection
156124 await connection .close ()
0 commit comments