From 396b42b69cfd95c0ef758065ba0b8d991f84d65e Mon Sep 17 00:00:00 2001 From: Houkime <> Date: Mon, 24 Apr 2023 17:03:56 +0000 Subject: [PATCH] test(backups): test jobs starting and finishing when from Backups --- selfprivacy_api/backup/__init__.py | 1 + selfprivacy_api/backup/tasks.py | 5 +++-- tests/test_graphql/test_backup.py | 5 +++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/selfprivacy_api/backup/__init__.py b/selfprivacy_api/backup/__init__.py index ec1180e..1992648 100644 --- a/selfprivacy_api/backup/__init__.py +++ b/selfprivacy_api/backup/__init__.py @@ -207,6 +207,7 @@ class Backups: Backups._store_last_snapshot(repo_name, snapshot) service.post_restore() + Jobs.update(job, status=JobStatus.FINISHED) @staticmethod def init_repo(service: Service): diff --git a/selfprivacy_api/backup/tasks.py b/selfprivacy_api/backup/tasks.py index 111f255..3b3051e 100644 --- a/selfprivacy_api/backup/tasks.py +++ b/selfprivacy_api/backup/tasks.py @@ -23,10 +23,11 @@ def validate_datetime(dt: datetime): # huey tasks need to return something @huey.task() def start_backup(service: Service) -> bool: + # Backups can create the job, but doing this here + # allows us to see the job as queued before it is actually executed add_backup_job(service) + Backups.back_up(service) - job = get_backup_job(service) - Jobs.update(job, status=JobStatus.FINISHED) return True diff --git a/tests/test_graphql/test_backup.py b/tests/test_graphql/test_backup.py index cb52e88..a185492 100644 --- a/tests/test_graphql/test_backup.py +++ b/tests/test_graphql/test_backup.py @@ -131,7 +131,10 @@ def test_backup_simple_file(raw_dummy_service, file_backup): def test_backup_service(dummy_service, backups): + id = dummy_service.get_id() + assert_job_finished(f"services.{id}.backup", count=0) assert Backups.get_last_backed_up(dummy_service) is None + Backups.back_up(dummy_service) now = datetime.now(timezone.utc) @@ -140,6 +143,8 @@ def test_backup_service(dummy_service, backups): assert now > date assert now - date < timedelta(minutes=1) + assert_job_finished(f"services.{id}.backup", count=1) + def test_no_repo(memory_backup): with pytest.raises(ValueError):