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

+2-2
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

+4-4
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

+2-2
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

+2-2
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

+9-9
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

+2-2
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

+8-8
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

+2-2
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

+2-2
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

+2-2
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)

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
@pytest.mark.parametrize('case', requests_client.ALL_CASES)
77
async def test_client_limit_bytes(grpc_ch, service_client, gate, case):
88
for i in range(100, 250, 50):
9-
queue = gate.to_client_limit_bytes(i)
9+
queue = await gate.to_client_limit_bytes(i)
1010
await requests_client.unavailable_request(service_client, gate, case)
1111
await queue.wait_call()
1212
await requests_client.close_connection(gate, grpc_ch, service_client)

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@
77

88
@pytest.mark.parametrize('case', requests_client.ALL_CASES)
99
async def test_client_smaller_parts(grpc_ch, service_client, gate, case):
10-
gate.to_client_smaller_parts(DATA_PARTS_MAX_SIZE)
10+
await gate.to_client_smaller_parts(DATA_PARTS_MAX_SIZE)
1111
await requests_client.check_200_for(case)(grpc_ch, service_client, gate)

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
@pytest.mark.parametrize('case', requests_client.ALL_CASES)
77
async def test_corrupt_data(grpc_ch, service_client, gate, case):
8-
gate.to_client_corrupt_data()
8+
await gate.to_client_corrupt_data()
99

1010
for _ in range(gate.connections_count()):
1111
await requests_client.unavailable_request(service_client, gate, case)

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

+4-4
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77

88
@pytest.mark.parametrize('case', requests_client.ALL_CASES)
99
async def test_network_delay(grpc_ch, service_client, gate, case):
10-
gate.to_server_delay(DATA_TRANSMISSION_DELAY)
11-
gate.to_client_delay(DATA_TRANSMISSION_DELAY)
10+
await gate.to_server_delay(DATA_TRANSMISSION_DELAY)
11+
await gate.to_client_delay(DATA_TRANSMISSION_DELAY)
1212
# client with timeout 1 second
1313
await requests_client.unavailable_request(service_client, gate, case)
14-
gate.to_client_pass()
15-
gate.to_server_pass()
14+
await gate.to_client_pass()
15+
await gate.to_server_pass()
1616
await requests_client.check_200_for(case)(grpc_ch, service_client, gate)

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77

88
@pytest.mark.parametrize('case', requests_client.ALL_CASES)
99
async def test_network_smaller_parts(grpc_ch, service_client, gate, case):
10-
gate.to_client_smaller_parts(DATA_PARTS_MAX_SIZE)
11-
gate.to_server_smaller_parts(DATA_PARTS_MAX_SIZE)
10+
await gate.to_client_smaller_parts(DATA_PARTS_MAX_SIZE)
11+
await gate.to_server_smaller_parts(DATA_PARTS_MAX_SIZE)
1212
await requests_client.check_200_for(case)(grpc_ch, service_client, gate)

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

+2-2
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_server_delay(grpc_ch, service_client, gate, case):
10-
gate.to_server_delay(DATA_TRANSMISSION_DELAY)
10+
await gate.to_server_delay(DATA_TRANSMISSION_DELAY)
1111
# client with timeout 1 second
1212
await requests_client.unavailable_request(service_client, gate, case)
13-
gate.to_server_pass()
13+
await gate.to_server_pass()
1414
await requests_client.check_200_for(case)(grpc_ch, service_client, gate)

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ async def test_server_limit_bytes(grpc_ch, service_client, gate, case):
1111
return
1212

1313
for i in range(100, 250, 50):
14-
gate.to_server_limit_bytes(i)
14+
await gate.to_server_limit_bytes(i)
1515
await requests_client.unavailable_request(service_client, gate, case)
1616

17-
gate.to_server_pass()
17+
await gate.to_server_pass()
1818
await requests_client.check_200_for(case)(grpc_ch, service_client, gate)

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@
77

88
@pytest.mark.parametrize('case', requests_client.ALL_CASES)
99
async def test_server_smaller_parts(grpc_ch, service_client, gate, case):
10-
gate.to_server_smaller_parts(DATA_PARTS_MAX_SIZE)
10+
await gate.to_server_smaller_parts(DATA_PARTS_MAX_SIZE)
1111
await requests_client.check_200_for(case)(grpc_ch, service_client, gate)

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ async def _gate_started(grpc_server_port):
4242

4343
@pytest.fixture(name='gate')
4444
async def _gate_ready(service_client, _gate_started):
45-
_gate_started.to_server_pass()
46-
_gate_started.to_client_pass()
45+
await _gate_started.to_server_pass()
46+
await _gate_started.to_client_pass()
4747
_gate_started.start_accepting()
4848

4949
yield _gate_started

grpc/functional_tests/basic_chaos/tests-grpcserver/requests_server.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ async def check_unavailable_for(case, grpc_client, gate):
179179

180180

181181
async def close_connection(gate):
182-
gate.to_server_pass()
183-
gate.to_client_pass()
182+
await gate.to_server_pass()
183+
await gate.to_client_pass()
184184
gate.start_accepting()
185185
await gate.sockets_close()

grpc/functional_tests/basic_chaos/tests-grpcserver/test_client_limit_bytes.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
@pytest.mark.parametrize('case', requests_server.ALL_CASES)
66
async def test_client_limit_bytes(grpc_client, gate, case):
77
for i in (50, 100, 150):
8-
queue = gate.to_client_limit_bytes(i)
8+
queue = await gate.to_client_limit_bytes(i)
99
await requests_server.check_unavailable_for(case, grpc_client, gate)
1010
await queue.wait_call()
1111

12-
gate.to_client_pass()
12+
await gate.to_client_pass()
1313
await requests_server.check_ok_for(case, grpc_client, gate)

grpc/functional_tests/basic_chaos/tests-grpcserver/test_client_smaller_part.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@
66

77
@pytest.mark.parametrize('case', requests_server.ALL_CASES)
88
async def test_client_smaller_parts(grpc_client, gate, case):
9-
gate.to_client_smaller_parts(DATA_PARTS_MAX_SIZE)
9+
await gate.to_client_smaller_parts(DATA_PARTS_MAX_SIZE)
1010
await requests_server.check_ok_for(case, grpc_client, gate)

grpc/functional_tests/basic_chaos/tests-grpcserver/test_network_limit_bytes.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
@pytest.mark.parametrize('case', requests_server.ALL_CASES)
66
async def test_network_limit_bytes(grpc_client, gate, case):
77
for i in (50, 100, 150):
8-
gate.to_client_limit_bytes(i)
9-
gate.to_server_limit_bytes(i)
8+
await gate.to_client_limit_bytes(i)
9+
await gate.to_server_limit_bytes(i)
1010
await requests_server.check_unavailable_for(case, grpc_client, gate)
1111

12-
gate.to_client_pass()
13-
gate.to_server_pass()
12+
await gate.to_client_pass()
13+
await gate.to_server_pass()
1414
await requests_server.check_ok_for(case, grpc_client, gate)

grpc/functional_tests/basic_chaos/tests-grpcserver/test_network_smaller_parts.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66

77
@pytest.mark.parametrize('case', requests_server.ALL_CASES)
88
async def test_network_smaller_parts(grpc_client, gate, case):
9-
gate.to_client_smaller_parts(DATA_PARTS_MAX_SIZE)
10-
gate.to_server_smaller_parts(DATA_PARTS_MAX_SIZE)
9+
await gate.to_client_smaller_parts(DATA_PARTS_MAX_SIZE)
10+
await gate.to_server_smaller_parts(DATA_PARTS_MAX_SIZE)
1111
await requests_server.check_ok_for(case, grpc_client, gate)

grpc/functional_tests/basic_chaos/tests-grpcserver/test_server_client_bytes.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
@pytest.mark.parametrize('case', requests_server.ALL_CASES)
77
async def test_server_limit_bytes(grpc_client, gate, case):
88
for i in range(10, 100, 25):
9-
gate.to_server_limit_bytes(i)
9+
await gate.to_server_limit_bytes(i)
1010
await requests_server.check_unavailable_for(case, grpc_client, gate)
1111

1212
await requests_server.close_connection(gate)

grpc/functional_tests/basic_chaos/tests-grpcserver/test_server_smaller_parts.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@
66

77
@pytest.mark.parametrize('case', requests_server.ALL_CASES)
88
async def test_server_smaller_parts(grpc_client, gate, case):
9-
gate.to_server_smaller_parts(DATA_PARTS_MAX_SIZE)
9+
await gate.to_server_smaller_parts(DATA_PARTS_MAX_SIZE)
1010
await requests_server.check_ok_for(case, grpc_client, gate)

0 commit comments

Comments
 (0)