99
1010import gitlab
1111import gitlab .base
12-
13- SLEEP_INTERVAL = 0.5
14- TIMEOUT = 60 # seconds before timeout will occur
12+ from tests .functional import helpers
1513
1614
1715@pytest .fixture (scope = "session" )
@@ -49,8 +47,6 @@ def reset_gitlab(gl):
4947logging .info (f"Marking for deletion user:{ user .username !r} " )
5048user .delete (hard_delete = True )
5149
52- max_iterations = int (TIMEOUT / SLEEP_INTERVAL )
53-
5450# Ensure everything has been reset
5551start_time = time .perf_counter ()
5652
@@ -60,15 +56,15 @@ def wait_for_list_size(
6056"""Wait for the list() length to be no greater than expected maximum or fail
6157 test if timeout is exceeded"""
6258logging .info (f"Checking{ description !r} has no more than{ max_length } items" )
63- for count in range (max_iterations ):
59+ for count in range (helpers . MAX_ITERATIONS ):
6460items = rest_manager .list ()
6561if len (items )<= max_length :
6662break
6763logging .info (
6864f"Iteration:{ count } Waiting for{ description !r} items to be deleted: "
6965f"{ [x .name for x in items ]} "
7066 )
71- time .sleep (SLEEP_INTERVAL )
67+ time .sleep (helpers . SLEEP_INTERVAL )
7268
7369elapsed_time = time .perf_counter ()- start_time
7470error_message = (
@@ -280,10 +276,7 @@ def group(gl):
280276
281277yield group
282278
283- try :
284- group .delete ()
285- except gitlab .exceptions .GitlabDeleteError as e :
286- print (f"Group already deleted:{ e } " )
279+ helpers .safe_delete (group )
287280
288281
289282@pytest .fixture (scope = "module" )
@@ -296,10 +289,7 @@ def project(gl):
296289
297290yield project
298291
299- try :
300- project .delete ()
301- except gitlab .exceptions .GitlabDeleteError as e :
302- print (f"Project already deleted:{ e } " )
292+ helpers .safe_delete (project )
303293
304294
305295@pytest .fixture (scope = "function" )
@@ -327,7 +317,7 @@ def _merge_request(*, source_branch: str):
327317assert result is True ,"sidekiq process should have terminated but did not"
328318
329319project .refresh ()# Gets us the current default branch
330- project .branches .create (
320+ mr_branch = project .branches .create (
331321 {"branch" :source_branch ,"ref" :project .default_branch }
332322 )
333323# NOTE(jlvillal): Must create a commit in the new branch before we can
@@ -359,18 +349,13 @@ def _merge_request(*, source_branch: str):
359349time .sleep (0.5 )
360350assert mr .merge_status != "checking"
361351
362- to_delete .append (( mr . iid , source_branch ) )
352+ to_delete .extend ([ mr , mr_branch ] )
363353return mr
364354
365355yield _merge_request
366356
367- for mr_iid ,source_branch in to_delete :
368- project .mergerequests .delete (mr_iid )
369- try :
370- project .branches .delete (source_branch )
371- except gitlab .exceptions .GitlabDeleteError :
372- # Ignore if branch was already deleted
373- pass
357+ for object in to_delete :
358+ helpers .safe_delete (object )
374359
375360
376361@pytest .fixture (scope = "module" )
@@ -434,11 +419,8 @@ def user(gl):
434419
435420yield user
436421
437- try :
438- # Use `hard_delete=True` or a 'Ghost User' may be created.
439- user .delete (hard_delete = True )
440- except gitlab .exceptions .GitlabDeleteError as e :
441- print (f"User already deleted:{ e } " )
422+ # Use `hard_delete=True` or a 'Ghost User' may be created.
423+ helpers .safe_delete (user ,hard_delete = True )
442424
443425
444426@pytest .fixture (scope = "module" )