diff options
author | John L. Villalovos <debian.org@sodarock.com> | 2021-02-21 10:11:22 -0800 |
---|---|---|
committer | John L. Villalovos <debian.org@sodarock.com> | 2021-02-21 12:18:36 -0800 |
commit | 19fde8ed0e794d33471056e2c07539cde70a8699 (patch) | |
tree | 14fff30e3e5745d927be51694a0b65c15e083658 | |
parent | 2b29776a033b9903d055df7c0716805e86d13fa2 (diff) | |
download | gitlab-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.py | 3 | ||||
-rw-r--r-- | tools/functional/conftest.py | 10 |
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 |