Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3633850

Browse files
chore: fixtures: after delete() wait to verify deleted
In our fixtures that create: - groups - project merge requests - projects - usersThey delete the created objects after use. Now wait to ensure theobjects are deleted before continuing as having unexpected objectsexisting can impact some of our tests.
1 parentca3b438 commit3633850

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

‎tests/functional/conftest.py‎

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,33 @@ def _wait(timeout=30, step=0.5):
191191
return_wait
192192

193193

194+
defwait_for_deleted(
195+
*,
196+
pg_manager:gitlab.base.RESTManager,
197+
object_id:int,
198+
description:str,
199+
hard_delete:bool=False,
200+
)->None:
201+
"""Ensure the object specified can not be retrieved. If object still exists after
202+
timeout period, fail the test"""
203+
max_iterations=int(TIMEOUT/SLEEP_INTERVAL)
204+
205+
for_inrange(max_iterations):
206+
try:
207+
object=pg_manager.get(object_id)
208+
exceptgitlab.exceptions.GitlabGetError:
209+
return
210+
try:
211+
ifhard_delete:
212+
object.delete(hard_delete=True)
213+
else:
214+
object.delete()
215+
exceptgitlab.exceptions.GitlabDeleteError:
216+
pass
217+
time.sleep(SLEEP_INTERVAL)
218+
pytest.fail(f"{description}{object_id} was not deleted")
219+
220+
194221
@pytest.fixture(scope="session")
195222
defgitlab_config(check_is_alive,docker_ip,docker_services,temp_dir,fixture_dir):
196223
config_file=temp_dir/"python-gitlab.cfg"
@@ -277,6 +304,7 @@ def group(gl):
277304
"path":f"group-{_id}",
278305
}
279306
group=gl.groups.create(data)
307+
group_id=group.id
280308

281309
yieldgroup
282310

@@ -285,6 +313,8 @@ def group(gl):
285313
exceptgitlab.exceptions.GitlabDeleteErrorase:
286314
print(f"Group already deleted:{e}")
287315

316+
wait_for_deleted(pg_manager=gl.groups,object_id=group_id,description="Group")
317+
288318

289319
@pytest.fixture(scope="module")
290320
defproject(gl):
@@ -293,6 +323,7 @@ def project(gl):
293323
name=f"test-project-{_id}"
294324

295325
project=gl.projects.create(name=name)
326+
project_id=project.id
296327

297328
yieldproject
298329

@@ -301,6 +332,10 @@ def project(gl):
301332
exceptgitlab.exceptions.GitlabDeleteErrorase:
302333
print(f"Project already deleted:{e}")
303334

335+
wait_for_deleted(
336+
pg_manager=gl.projects,object_id=project_id,description="Project"
337+
)
338+
304339

305340
@pytest.fixture(scope="function")
306341
defmerge_request(project,wait_for_sidekiq):
@@ -372,6 +407,18 @@ def _merge_request(*, source_branch: str):
372407
# Ignore if branch was already deleted
373408
pass
374409

410+
formr_iid,source_branchinto_delete:
411+
wait_for_deleted(
412+
pg_manager=project.mergerequests,
413+
object_id=mr_iid,
414+
description="Project mergerequest",
415+
)
416+
wait_for_deleted(
417+
pg_manager=project.branches,
418+
object_id=source_branch,
419+
description="Project branch",
420+
)
421+
375422

376423
@pytest.fixture(scope="module")
377424
defproject_file(project):
@@ -431,6 +478,7 @@ def user(gl):
431478
password="fakepassword"
432479

433480
user=gl.users.create(email=email,username=username,name=name,password=password)
481+
user_id=user.id
434482

435483
yielduser
436484

@@ -440,6 +488,10 @@ def user(gl):
440488
exceptgitlab.exceptions.GitlabDeleteErrorase:
441489
print(f"User already deleted:{e}")
442490

491+
wait_for_deleted(
492+
pg_manager=gl.users,object_id=user_id,description="User",hard_delete=True
493+
)
494+
443495

444496
@pytest.fixture(scope="module")
445497
defissue(project):

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp