Skip to content

Commit 215ddcc

Browse files
committed
test: strip out wait_for_sidekiq and use simple sleep
1 parent ef16015 commit 215ddcc

File tree

6 files changed

+48
-79
lines changed

6 files changed

+48
-79
lines changed

tests/functional/api/test_lazy_objects.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import time
2+
13
import pytest
24

35
import gitlab
@@ -27,9 +29,10 @@ def test_save_after_lazy_get_with_path(project, lazy_project):
2729
assert lazy_project.description == "A new description"
2830

2931

30-
def test_delete_after_lazy_get_with_path(gl, group, wait_for_sidekiq):
32+
def test_delete_after_lazy_get_with_path(gl, group):
3133
project = gl.projects.create({"name": "lazy_project", "namespace_id": group.id})
32-
wait_for_sidekiq(timeout=60)
34+
# Pause to let GL catch up (happens on hosted too, sometimes takes a while for server to be ready to merge)
35+
time.sleep(5)
3336
lazy_project = gl.projects.get(project.path_with_namespace, lazy=True)
3437
lazy_project.delete()
3538

tests/functional/api/test_merge_requests.py

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -168,23 +168,24 @@ def test_project_merge_request_approval_rules(group, project):
168168
assert len(ars) == 0
169169

170170

171-
def test_merge_request_reset_approvals(gitlab_url, project, wait_for_sidekiq):
171+
def test_merge_request_reset_approvals(gitlab_url, project):
172172
bot = project.access_tokens.create({"name": "bot", "scopes": ["api"]})
173173
bot_gitlab = gitlab.Gitlab(gitlab_url, private_token=bot.token)
174174
bot_project = bot_gitlab.projects.get(project.id, lazy=True)
175175

176-
wait_for_sidekiq(timeout=60)
176+
# Pause to let GL catch up (happens on hosted too, sometimes takes a while for server to be ready to merge)
177+
time.sleep(5)
177178
mr = bot_project.mergerequests.list()[0] # type: ignore[index]
178179
assert mr.reset_approvals()
179180

180181

181-
def test_cancel_merge_when_pipeline_succeeds(
182-
project, merge_request_with_pipeline, wait_for_sidekiq
183-
):
184-
wait_for_sidekiq(timeout=60)
182+
def test_cancel_merge_when_pipeline_succeeds(project, merge_request_with_pipeline):
183+
# Pause to let GL catch up (happens on hosted too, sometimes takes a while for server to be ready to merge)
184+
time.sleep(5)
185185
# Set to merge when the pipeline succeeds, which should never happen
186186
merge_request_with_pipeline.merge(merge_when_pipeline_succeeds=True)
187-
wait_for_sidekiq(timeout=60)
187+
# Pause to let GL catch up (happens on hosted too, sometimes takes a while for server to be ready to merge)
188+
time.sleep(5)
188189

189190
mr = project.mergerequests.get(merge_request_with_pipeline.iid)
190191
assert mr.merged_at is None
@@ -193,9 +194,10 @@ def test_cancel_merge_when_pipeline_succeeds(
193194
assert cancel == {"status": "success"}
194195

195196

196-
def test_merge_request_merge(project, merge_request, wait_for_sidekiq):
197+
def test_merge_request_merge(project, merge_request):
197198
merge_request.merge()
198-
wait_for_sidekiq(timeout=60)
199+
# Pause to let GL catch up (happens on hosted too, sometimes takes a while for server to be ready to merge)
200+
time.sleep(5)
199201

200202
mr = project.mergerequests.get(merge_request.iid)
201203
assert mr.merged_at is not None
@@ -205,15 +207,14 @@ def test_merge_request_merge(project, merge_request, wait_for_sidekiq):
205207
mr.merge()
206208

207209

208-
def test_merge_request_should_remove_source_branch(
209-
project, merge_request, wait_for_sidekiq
210-
) -> None:
210+
def test_merge_request_should_remove_source_branch(project, merge_request) -> None:
211211
"""Test to ensure
212212
https://github.com/python-gitlab/python-gitlab/issues/1120 is fixed.
213213
Bug reported that they could not use 'should_remove_source_branch' in
214214
mr.merge() call"""
215215
merge_request.merge(should_remove_source_branch=True)
216-
wait_for_sidekiq(timeout=60)
216+
# Pause to let GL catch up (happens on hosted too, sometimes takes a while for server to be ready to merge)
217+
time.sleep(5)
217218

218219
# Wait until it is merged
219220
mr = None
@@ -227,7 +228,8 @@ def test_merge_request_should_remove_source_branch(
227228
assert mr is not None
228229
assert mr.merged_at is not None
229230
time.sleep(0.5)
230-
wait_for_sidekiq(timeout=60)
231+
# Pause to let GL catch up (happens on hosted too, sometimes takes a while for server to be ready to merge)
232+
time.sleep(5)
231233

232234
# Ensure we can NOT get the MR branch
233235
with pytest.raises(gitlab.exceptions.GitlabGetError):
@@ -240,9 +242,7 @@ def test_merge_request_should_remove_source_branch(
240242
print("result:", pprint.pformat(result))
241243

242244

243-
def test_merge_request_large_commit_message(
244-
project, merge_request, wait_for_sidekiq
245-
) -> None:
245+
def test_merge_request_large_commit_message(project, merge_request) -> None:
246246
"""Test to ensure https://github.com/python-gitlab/python-gitlab/issues/1452
247247
is fixed.
248248
Bug reported that very long 'merge_commit_message' in mr.merge() would
@@ -255,7 +255,8 @@ def test_merge_request_large_commit_message(
255255
merge_commit_message=merge_commit_message, should_remove_source_branch=False
256256
)
257257

258-
wait_for_sidekiq(timeout=60)
258+
# Pause to let GL catch up (happens on hosted too, sometimes takes a while for server to be ready to merge)
259+
time.sleep(5)
259260

260261
# Wait until it is merged
261262
mr = None
@@ -279,9 +280,7 @@ def test_merge_request_merge_ref(merge_request) -> None:
279280
assert response and "commit_id" in response
280281

281282

282-
def test_merge_request_merge_ref_should_fail(
283-
project, merge_request, wait_for_sidekiq
284-
) -> None:
283+
def test_merge_request_merge_ref_should_fail(project, merge_request) -> None:
285284
# Create conflict
286285
project.files.create(
287286
{
@@ -291,7 +290,8 @@ def test_merge_request_merge_ref_should_fail(
291290
"commit_message": "Another commit in main branch",
292291
}
293292
)
294-
wait_for_sidekiq(timeout=60)
293+
# Pause to let GL catch up (happens on hosted too, sometimes takes a while for server to be ready to merge)
294+
time.sleep(5)
295295

296296
# Check for non-existing merge_ref for MR with conflicts
297297
with pytest.raises(gitlab.exceptions.GitlabGetError):

tests/functional/api/test_users.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
https://docs.gitlab.com/ee/api/users.html#delete-authentication-identity-from-user
55
"""
66

7+
import time
8+
79
import requests
810

911

@@ -60,7 +62,7 @@ def test_ban_user(gl, user):
6062
assert retrieved_user.state == "active"
6163

6264

63-
def test_delete_user(gl, wait_for_sidekiq):
65+
def test_delete_user(gl):
6466
new_user = gl.users.create(
6567
{
6668
"email": "delete-user@test.com",
@@ -71,7 +73,8 @@ def test_delete_user(gl, wait_for_sidekiq):
7173
)
7274

7375
new_user.delete()
74-
wait_for_sidekiq(timeout=60)
76+
# Pause to let GL catch up (happens on hosted too, sometimes takes a while for server to be ready to merge)
77+
time.sleep(5)
7578

7679
assert new_user.id not in [user.id for user in gl.users.list()]
7780

tests/functional/cli/test_cli_repository.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,9 @@ def test_list_merge_request_commits(gitlab_cli, merge_request, project):
7777
assert ret.stdout
7878

7979

80-
def test_commit_merge_requests(gitlab_cli, project, merge_request, wait_for_sidekiq):
81-
"""This tests the `project-commit merge-requests` command and also tests
82-
that we can print the result using the `json` formatter"""
83-
# Merge the MR first
84-
wait_for_sidekiq(timeout=60)
85-
80+
def test_commit_merge_requests(gitlab_cli, project, merge_request):
81+
# Pause to let GL catch up (happens on hosted too, sometimes takes a while for server to be ready to merge)
82+
time.sleep(5)
8683
logging.info(f"MR status: {merge_request.state}")
8784
logging.info(f"MR merge status: {merge_request.detailed_merge_status}")
8885

@@ -95,7 +92,8 @@ def test_commit_merge_requests(gitlab_cli, project, merge_request, wait_for_side
9592
time.sleep(5)
9693

9794
merge_result = merge_request.merge(should_remove_source_branch=True)
98-
wait_for_sidekiq(timeout=60)
95+
# Pause to let GL catch up (happens on hosted too, sometimes takes a while for server to be ready to merge)
96+
time.sleep(5)
9997

10098
# Wait until it is merged
10199
mr = None
@@ -108,8 +106,8 @@ def test_commit_merge_requests(gitlab_cli, project, merge_request, wait_for_side
108106

109107
assert mr is not None
110108
assert mr.merged_at is not None
111-
time.sleep(0.5)
112-
wait_for_sidekiq(timeout=60)
109+
# Pause to let GL catch up (happens on hosted too, sometimes takes a while for server to be ready to merge)
110+
time.sleep(5)
113111

114112
commit_sha = merge_result["sha"]
115113
cmd = [

tests/functional/cli/test_cli_v4.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ def test_create_merge_request(gitlab_cli, project):
231231
assert ret.success
232232

233233

234-
def test_accept_request_merge(gitlab_cli, project, wait_for_sidekiq):
234+
def test_accept_request_merge(gitlab_cli, project):
235235
# MR needs at least 1 commit before we can merge
236236
mr = project.mergerequests.list()[0]
237237
file_data = {
@@ -241,8 +241,8 @@ def test_accept_request_merge(gitlab_cli, project, wait_for_sidekiq):
241241
"commit_message": "chore: test-cli-v4 change",
242242
}
243243
project.files.create(file_data)
244+
# Pause to let GL catch up (happens on hosted too, sometimes takes a while for server to be ready to merge)
244245
time.sleep(30)
245-
wait_for_sidekiq(timeout=60)
246246

247247
logging.info(f"MR status: {mr.state}")
248248
logging.info(f"MR merge status: {mr.detailed_merge_status}")
@@ -260,10 +260,10 @@ def test_accept_request_merge(gitlab_cli, project, wait_for_sidekiq):
260260
]
261261
gitlab_cli(approve_cmd)
262262

263+
# Pause to let GL catch up (happens on hosted too, sometimes takes a while for server to be ready to merge)
263264
time.sleep(5)
264265
logging.info(f"MR merge status: {mr.detailed_merge_status}")
265266

266-
time.sleep(0.5)
267267
approve_cmd = [
268268
"project-merge-request",
269269
"merge",

tests/functional/conftest.py

Lines changed: 6 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -208,42 +208,6 @@ def _check(
208208
return _check
209209

210210

211-
@pytest.fixture
212-
def wait_for_sidekiq(gl):
213-
"""
214-
Return a helper function to wait until there are spare sidekiq processes.
215-
216-
Because not all Groups can be deleted immediately in GL 16, we will likely have busy Sidekiq jobs
217-
set aside for their deletion in 1 days time.
218-
219-
Use this with asserts for slow tasks (group/project/user creation/deletion).
220-
221-
{ ..., 'labels': [], 'concurrency': 20, 'busy': 3}
222-
"""
223-
224-
def _wait(timeout: int = 30, step: float = 0.5, allow_fail: bool = False) -> bool:
225-
for count in range(timeout):
226-
time.sleep(step)
227-
processes = gl.sidekiq.process_metrics()["processes"]
228-
busy_processes = 0
229-
total_concurrency = 0
230-
for process in processes:
231-
busy_processes += process["busy"]
232-
total_concurrency += process["concurrency"]
233-
234-
logging.info(f"Busy processes {busy_processes}")
235-
# If we have space concurrency in the process, continue
236-
if busy_processes < total_concurrency:
237-
logging.info("Spare sidekiq process found")
238-
return True
239-
240-
logging.info(f"sidekiq busy {count} of {timeout}")
241-
assert allow_fail, "sidekiq process should have terminated but did not."
242-
return False
243-
244-
return _wait
245-
246-
247211
@pytest.fixture(scope="session")
248212
def gitlab_token(
249213
check_is_alive,
@@ -386,7 +350,7 @@ def project(gl):
386350

387351

388352
@pytest.fixture(scope="function")
389-
def make_merge_request(project, wait_for_sidekiq):
353+
def make_merge_request(project):
390354
"""Fixture factory used to create a merge_request.
391355
392356
It will create a branch, add a commit to the branch, and then create a
@@ -406,8 +370,8 @@ def _make_merge_request(*, source_branch: str, create_pipeline: bool = False):
406370
# NOTE(jlvillal): Sometimes the CI would give a "500 Internal Server
407371
# Error". Hoping that waiting until all other processes are done will
408372
# help with that.
409-
result = wait_for_sidekiq(timeout=60)
410-
assert result is True, "sidekiq process should have terminated but did not"
373+
# Pause to let GL catch up (happens on hosted too, sometimes takes a while for server to be ready to merge)
374+
time.sleep(30)
411375

412376
project.refresh() # Gets us the current default branch
413377
logging.info(f"Creating branch {source_branch}")
@@ -453,8 +417,9 @@ def _make_merge_request(*, source_branch: str, create_pipeline: bool = False):
453417
"remove_source_branch": True,
454418
}
455419
)
456-
result = wait_for_sidekiq(timeout=60)
457-
assert result is True, "sidekiq process should have terminated but did not"
420+
421+
# Pause to let GL catch up (happens on hosted too, sometimes takes a while for server to be ready to merge)
422+
time.sleep(5)
458423

459424
mr_iid = mr.iid
460425
for _ in range(60):

0 commit comments

Comments
 (0)