Skip to content

Commit ac16455

Browse files
author
vitja
committed
refactor tests: remove busy-wait from chaos tests
commit_hash:c08e4c58acb389c86269b89647331bc565a85eb1
1 parent 9643d64 commit ac16455

File tree

43 files changed

+380
-370
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+380
-370
lines changed

clickhouse/functional_tests/basic_chaos/tests/conftest.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ async def _gate(gate_settings, clickhouse_conn_info):
4646

4747
@pytest.fixture(name='gate')
4848
async def _gate_ready(service_client, _gate):
49-
_gate.to_client_pass()
50-
_gate.to_server_pass()
49+
await _gate.to_client_pass()
50+
await _gate.to_server_pass()
5151
_gate.start_accepting()
5252

5353
await _gate.wait_for_connections(timeout=5.0)

clickhouse/functional_tests/basic_chaos/tests/test_clickhouse.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,18 @@ async def test_clickhouse_happy(service_client, gate):
3636

3737

3838
async def test_clickhouse_disable_reads(service_client, gate):
39-
gate.to_server_noop()
39+
await gate.to_server_noop()
4040
result = await service_client.delete('/chaos?key=foo')
4141
assert result.status == 500
42-
gate.to_server_pass()
42+
await gate.to_server_pass()
4343
await _check_that_restores(service_client, gate)
4444

4545

4646
async def test_clickhouse_disable_writes(service_client, gate):
47-
gate.to_client_noop()
47+
await gate.to_client_noop()
4848
result = await service_client.delete('/chaos?key=foo')
4949
assert result.status == 500
50-
gate.to_client_pass()
50+
await gate.to_client_pass()
5151
await _check_that_restores(service_client, gate)
5252

5353

core/functional_tests/basic_chaos/tests/httpclient/conftest.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ def extra_client_deps(_gate_started):
3232

3333
@pytest.fixture(name='gate')
3434
async def _gate_ready(service_client, _gate_started):
35-
_gate_started.to_server_pass()
36-
_gate_started.to_client_pass()
35+
await _gate_started.to_server_pass()
36+
await _gate_started.to_client_pass()
3737
_gate_started.start_accepting()
3838
await _gate_started.sockets_close() # close keepalive connections
3939

core/functional_tests/basic_chaos/tests/httpserver/conftest.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ def extra_client_deps(_gate_started):
4646

4747
@pytest.fixture(name='gate')
4848
async def _gate_ready(service_client, _gate_started):
49-
_gate_started.to_server_pass()
50-
_gate_started.to_client_pass()
49+
await _gate_started.to_server_pass()
50+
await _gate_started.to_client_pass()
5151
_gate_started.start_accepting()
5252
await _gate_started.sockets_close() # close keepalive connections
5353

core/functional_tests/basic_chaos/tests/httpserver/test_httpserver.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ async def _call(
8181
@pytest.fixture(name='check_restore')
8282
def _check_restore(gate, call):
8383
async def _check_restore():
84-
gate.to_server_pass()
85-
gate.to_client_pass()
84+
await gate.to_server_pass()
85+
await gate.to_client_pass()
8686
gate.start_accepting()
8787

8888
response = await call(testsuite_skip_prepare=True)
@@ -237,7 +237,7 @@ async def test_close_on_data(call, gate, check_restore):
237237
response = await call(testsuite_skip_prepare=True)
238238
assert response.status == 200
239239

240-
gate.to_server_close_on_data()
240+
await gate.to_server_close_on_data()
241241

242242
assert gate.connections_count() >= 1
243243
for _ in range(gate.connections_count()):
@@ -249,13 +249,13 @@ async def test_close_on_data(call, gate, check_restore):
249249

250250
@pytest.mark.skip(reason='corrupted data can still be valid')
251251
async def test_corrupted_request(call, gate, check_restore):
252-
gate.to_server_corrupt_data()
252+
await gate.to_server_corrupt_data()
253253

254254
response = await call(testsuite_skip_prepare=True)
255255
assert isinstance(response, http.ClientResponse)
256256
assert response.status == 400
257257

258-
gate.to_server_pass()
258+
await gate.to_server_pass()
259259

260260
# Connection could be cached in testsuite client. Give it a few attempts
261261
# to restore
@@ -271,7 +271,7 @@ async def test_partial_request(call, gate, check_restore):
271271
success: bool = False
272272
fail: int = 0
273273
for bytes_count in range(1, 1000):
274-
gate.to_server_limit_bytes(bytes_count)
274+
await gate.to_server_limit_bytes(bytes_count)
275275
response = await call(
276276
data={'test': 'body'},
277277
testsuite_skip_prepare=True,
@@ -293,7 +293,7 @@ async def test_partial_request(call, gate, check_restore):
293293

294294

295295
async def test_network_smaller_parts_sends(call, gate):
296-
gate.to_server_smaller_parts(DATA_PARTS_MAX_SIZE)
296+
await gate.to_server_smaller_parts(DATA_PARTS_MAX_SIZE)
297297

298298
# With debug enabled in python send works a little bit longer
299299
response = await call(
@@ -341,7 +341,7 @@ async def test(_data):
341341
await service_client.update_server_state()
342342

343343
async with handler_metrics:
344-
gate.to_server_smaller_parts(
344+
await gate.to_server_smaller_parts(
345345
DATA_PARTS_MAX_SIZE,
346346
sleep_per_packet=0.03,
347347
)
@@ -351,7 +351,7 @@ async def test(_data):
351351
)
352352
_check_deadline_propagation_response(response)
353353
assert test.times_called == 0, 'Control flow should NOT enter the handler body'
354-
gate.to_server_pass()
354+
await gate.to_server_pass()
355355

356356
assert handler_metrics.value_at('rps') == 1
357357
assert (

core/functional_tests/basic_chaos/tests/resolver/conftest.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,8 +188,8 @@ def extra_client_deps(_gate_started):
188188

189189
@pytest.fixture(name='gate')
190190
async def _gate_ready(service_client, _gate_started):
191-
_gate_started.to_server_pass()
192-
_gate_started.to_client_pass()
191+
await _gate_started.to_server_pass()
192+
await _gate_started.to_client_pass()
193193
await _gate_started.sockets_close() # close keepalive connections
194194

195195
yield _gate_started

core/functional_tests/basic_chaos/tests/resolver/test_resolver.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ async def _do_flush(flush_resolver_cache):
7272
@pytest.fixture(name='check_restore')
7373
def _check_restore(gate, call, flush_resolver_cache, gen_domain_name):
7474
async def _do_restore(domain: typing.Optional[str] = None):
75-
gate.to_server_pass()
76-
gate.to_client_pass()
75+
await gate.to_server_pass()
76+
await gate.to_client_pass()
7777

7878
if not domain:
7979
domain = gen_domain_name()
@@ -105,7 +105,7 @@ async def test_ok(call, gate):
105105

106106
@pytest.mark.skip(reason='corrupted data can still be valid')
107107
async def test_corrupt_data(call, gate, check_restore):
108-
gate.to_client_corrupt_data()
108+
await gate.to_client_corrupt_data()
109109
response = await call()
110110

111111
assert response.status == 500
@@ -119,7 +119,7 @@ async def test_cached_name(call, gate, check_restore, gen_domain_name):
119119
assert response.status == 200
120120
assert response.text == SUCCESS_RESOLVE
121121

122-
gate.to_client_drop()
122+
await gate.to_client_drop()
123123

124124
response = await call(resolve=name, check_query=CheckQuery.FROM_CACHE)
125125
assert response.status == 200
@@ -128,7 +128,7 @@ async def test_cached_name(call, gate, check_restore, gen_domain_name):
128128

129129
@pytest.mark.skip(reason='Fails on c-ares 1.28.1')
130130
async def test_drop(call, gate, check_restore, gen_domain_name):
131-
gate.to_client_drop()
131+
await gate.to_client_drop()
132132

133133
response = await call(check_query=CheckQuery.FROM_MOCK)
134134

@@ -137,7 +137,7 @@ async def test_drop(call, gate, check_restore, gen_domain_name):
137137

138138

139139
async def test_delay(call, gate, check_restore):
140-
gate.to_client_delay(delay=10)
140+
await gate.to_client_delay(delay=10)
141141

142142
response = await call(timeout=1)
143143

@@ -147,7 +147,7 @@ async def test_delay(call, gate, check_restore):
147147

148148
@pytest.mark.skip(reason='Fails on c-ares 1.28.1')
149149
async def test_close_on_data(call, gate, check_restore):
150-
gate.to_client_close_on_data()
150+
await gate.to_client_close_on_data()
151151

152152
response = await call()
153153

@@ -160,7 +160,7 @@ async def test_close_on_data(call, gate, check_restore):
160160

161161
@pytest.mark.skip(reason='Fails on c-ares 1.28.1')
162162
async def test_limit_bytes(call, gate, check_restore):
163-
gate.to_client_limit_bytes(10)
163+
await gate.to_client_limit_bytes(10)
164164
# 10 bytes less than dns-mock message, so part of this message will be
165165
# dropped and it must lead error
166166

grpc/functional_tests/basic_chaos/tests-grpcclient/conftest.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ def extra_client_deps(gate):
6161

6262
@pytest.fixture(name='gate')
6363
async def _gate_ready(_gate_started, greeter_mock):
64-
_gate_started.to_server_pass()
65-
_gate_started.to_client_pass()
64+
await _gate_started.to_server_pass()
65+
await _gate_started.to_client_pass()
6666
_gate_started.start_accepting()
6767

6868
await _gate_started.sockets_close()

grpc/functional_tests/basic_chaos/tests-grpcclient/requests_client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,8 @@ def check_200_for(case):
134134

135135

136136
async def close_connection(gate, grpc_ch, service_client):
137-
gate.to_server_pass()
138-
gate.to_client_pass()
137+
await gate.to_server_pass()
138+
await gate.to_client_pass()
139139
await gate.sockets_close()
140140

141141
for _ in range(_RETRIES):

grpc/functional_tests/basic_chaos/tests-grpcclient/test_client_delay.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
@pytest.mark.parametrize('case', requests_client.ALL_CASES)
99
async def test_delay(grpc_ch, service_client, gate, case):
10-
gate.to_client_delay(DATA_TRANSMISSION_DELAY)
10+
await gate.to_client_delay(DATA_TRANSMISSION_DELAY)
1111
# client with timeout 1 second
1212
await requests_client.unavailable_request(service_client, gate, case)
13-
gate.to_client_pass()
13+
await gate.to_client_pass()
1414
await requests_client.check_200_for(case)(grpc_ch, service_client, gate)

0 commit comments

Comments
 (0)