Skip to content

Commit c9243ba

Browse files
chore: ensure reset_gitlab() succeeds
Ensure reset_gitlab() succeeds by waiting to make sure everything has been deleted as expected. If the timeout is exceeded fail the test. Not using `wait_for_sidekiq` as it didn't work. During testing I didn't see any sidekiq processes as being busy even though not everything was deleted.
1 parent d65ce36 commit c9243ba

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

tests/functional/conftest.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,36 @@ def reset_gitlab(gl):
3030
if user.username != "root":
3131
user.delete(hard_delete=True)
3232

33+
sleep_interval = 0.1
34+
timeout = 60
35+
max_iterations = int(timeout / sleep_interval)
36+
37+
# Ensure everything has been reset
38+
start_time = time.perf_counter()
39+
40+
def ensure_list_empty(pg_object, description: str) -> None:
41+
for _ in range(max_iterations):
42+
if pg_object.list() == []:
43+
break
44+
time.sleep(sleep_interval)
45+
assert pg_object.list() == [], (
46+
f"Did not delete all {description}. "
47+
f"Elapsed_time: {time.perf_counter() - start_time}"
48+
)
49+
50+
ensure_list_empty(pg_object=gl.projects, description="projects")
51+
ensure_list_empty(pg_object=gl.groups, description="groups")
52+
ensure_list_empty(pg_object=gl.variables, description="variables")
53+
54+
for _ in range(max_iterations):
55+
if len(gl.users.list()) <= 1:
56+
break
57+
time.sleep(sleep_interval)
58+
assert len(gl.users.list()) <= 1, (
59+
f"Did not delete all users. "
60+
f"elapsed_time: {time.perf_counter() - start_time}"
61+
)
62+
3363

3464
def set_token(container, fixture_dir):
3565
set_token_rb = fixture_dir / "set_token.rb"

0 commit comments

Comments
 (0)