Skip to content

Commit d684c74

Browse files
chore: fixtures: after delete() wait to verify deleted
In our fixtures that create: - groups - project merge requests - projects - users They delete the created objects after use. Now wait to ensure the objects are deleted before continuing as having unexpected objects existing can impact some of our tests.
1 parent a3eafab commit d684c74

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

tests/functional/conftest.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,22 @@ def _wait(timeout=30, step=0.5):
158158
return _wait
159159

160160

161+
def wait_for_deleted(
162+
*, pg_manager: gitlab.base.RESTManager, object_id: int, description: str
163+
) -> None:
164+
"""Ensure the object specified can not be retrieved. If object still exists after
165+
timeout period, fail the test"""
166+
max_iterations = int(TIMEOUT / SLEEP_INTERVAL)
167+
168+
for _ in range(max_iterations):
169+
try:
170+
pg_manager.get(object_id)
171+
except gitlab.exceptions.GitlabGetError:
172+
return
173+
time.sleep(SLEEP_INTERVAL)
174+
pytest.fail(f"{description} {object_id} was not deleted")
175+
176+
161177
@pytest.fixture(scope="session")
162178
def gitlab_config(check_is_alive, docker_ip, docker_services, temp_dir, fixture_dir):
163179
config_file = temp_dir / "python-gitlab.cfg"
@@ -233,6 +249,7 @@ def group(gl):
233249
"path": f"group-{_id}",
234250
}
235251
group = gl.groups.create(data)
252+
group_id = group.id
236253

237254
yield group
238255

@@ -241,6 +258,8 @@ def group(gl):
241258
except gitlab.exceptions.GitlabDeleteError as e:
242259
print(f"Group already deleted: {e}")
243260

261+
wait_for_deleted(pg_manager=gl.groups, object_id=group_id, description="Group")
262+
244263

245264
@pytest.fixture(scope="module")
246265
def project(gl):
@@ -249,6 +268,7 @@ def project(gl):
249268
name = f"test-project-{_id}"
250269

251270
project = gl.projects.create(name=name)
271+
project_id = project.id
252272

253273
yield project
254274

@@ -257,6 +277,10 @@ def project(gl):
257277
except gitlab.exceptions.GitlabDeleteError as e:
258278
print(f"Project already deleted: {e}")
259279

280+
wait_for_deleted(
281+
pg_manager=gl.projects, object_id=project_id, description="Project"
282+
)
283+
260284

261285
@pytest.fixture(scope="function")
262286
def merge_request(project, wait_for_sidekiq):
@@ -328,6 +352,18 @@ def _merge_request(*, source_branch: str):
328352
# Ignore if branch was already deleted
329353
pass
330354

355+
for mr_iid, source_branch in to_delete:
356+
wait_for_deleted(
357+
pg_manager=project.mergerequests,
358+
object_id=mr_iid,
359+
description="Project mergerequest",
360+
)
361+
wait_for_deleted(
362+
pg_manager=project.branches,
363+
object_id=source_branch,
364+
description="Project branch",
365+
)
366+
331367

332368
@pytest.fixture(scope="module")
333369
def project_file(project):
@@ -372,6 +408,7 @@ def user(gl):
372408
password = "fakepassword"
373409

374410
user = gl.users.create(email=email, username=username, name=name, password=password)
411+
user_id = user.id
375412

376413
yield user
377414

@@ -380,6 +417,8 @@ def user(gl):
380417
except gitlab.exceptions.GitlabDeleteError as e:
381418
print(f"User already deleted: {e}")
382419

420+
wait_for_deleted(pg_manager=gl.users, object_id=user_id, description="User")
421+
383422

384423
@pytest.fixture(scope="module")
385424
def issue(project):

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy