summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn L. Villalovos <debian.org@sodarock.com>2021-02-21 10:11:22 -0800
committerJohn L. Villalovos <debian.org@sodarock.com>2021-02-21 12:18:36 -0800
commit19fde8ed0e794d33471056e2c07539cde70a8699 (patch)
tree14fff30e3e5745d927be51694a0b65c15e083658
parent2b29776a033b9903d055df7c0716805e86d13fa2 (diff)
downloadgitlab-19fde8ed0e794d33471056e2c07539cde70a8699.tar.gz
fix: extend wait timeout for test_delete_user()
Have been seeing intermittent failures of the test_delete_user() functional test. Have made the following changes to hopefully resolve the issue and if it still fails to know better why the failure occurred. * Extend the wait timeout for test_delete_user() from 30 to 60 tries of 0.5 seconds each. * Modify wait_for_sidekiq() to return True if sidekiq process terminated. Return False if the timeout expired. * Modify wait_for_sidekiq() to loop through all processes instead of assuming there is only one process. If all processes are not busy then return. * Modify wait_for_sidekiq() to sleep at least once before checking for processes being busy. * Check for True being returned in test_delete_user() call to wait_for_sidekiq()
-rw-r--r--tools/functional/api/test_users.py3
-rw-r--r--tools/functional/conftest.py10
2 files changed, 10 insertions, 3 deletions
diff --git a/tools/functional/api/test_users.py b/tools/functional/api/test_users.py
index 485829d..044831a 100644
--- a/tools/functional/api/test_users.py
+++ b/tools/functional/api/test_users.py
@@ -56,7 +56,8 @@ def test_delete_user(gl, wait_for_sidekiq):
)
new_user.delete()
- wait_for_sidekiq()
+ result = wait_for_sidekiq(timeout=60)
+ assert result == True, "sidekiq process should have terminated but did not"
assert new_user.id not in [user.id for user in gl.users.list()]
diff --git a/tools/functional/conftest.py b/tools/functional/conftest.py
index a0b14f9..648fe5e 100644
--- a/tools/functional/conftest.py
+++ b/tools/functional/conftest.py
@@ -89,9 +89,15 @@ def wait_for_sidekiq(gl):
def _wait(timeout=30, step=0.5):
for _ in range(timeout):
- if not gl.sidekiq.process_metrics()["processes"][0]["busy"]:
- return
time.sleep(step)
+ busy = False
+ processes = gl.sidekiq.process_metrics()["processes"]
+ for process in processes:
+ if process["busy"]:
+ busy = True
+ if not busy:
+ return True
+ return False
return _wait