From 8e1e37c76699fbe236467fced40b99726b2811d5 Mon Sep 17 00:00:00 2001 From: Houkime <> Date: Fri, 16 Jun 2023 14:33:48 +0000 Subject: [PATCH] test(backups): preliminary test of repo reset --- .../graphql/mutations/backup_mutations.py | 4 +- tests/test_graphql/test_api_backup.py | 43 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/selfprivacy_api/graphql/mutations/backup_mutations.py b/selfprivacy_api/graphql/mutations/backup_mutations.py index ad43686..110e731 100644 --- a/selfprivacy_api/graphql/mutations/backup_mutations.py +++ b/selfprivacy_api/graphql/mutations/backup_mutations.py @@ -64,7 +64,9 @@ class BackupMutations: def remove_repository(self) -> GenericBackupConfigReturn: """Remove repository""" Backups.reset() - return Backup.configuration() + return GenericBackupConfigReturn( + success=True, message="", code="200", configuration=Backup().configuration() + ) @strawberry.mutation(permission_classes=[IsAuthenticated]) def set_autobackup_period( diff --git a/tests/test_graphql/test_api_backup.py b/tests/test_graphql/test_api_backup.py index 3c9c7f2..7d23902 100644 --- a/tests/test_graphql/test_api_backup.py +++ b/tests/test_graphql/test_api_backup.py @@ -6,6 +6,24 @@ from tests.common import generate_backup_query from selfprivacy_api.graphql.common_types.service import service_to_graphql_service from selfprivacy_api.jobs import Jobs, JobStatus +API_REMOVE_REPOSITORY_MUTATION = """ +mutation TestRemoveRepo { + removeRepository { + success + message + code + configuration { + provider + encryptionKey + isInitialized + autobackupPeriod + locationName + locationId + } + } +} +""" + API_INIT_MUTATION = """ mutation TestInitRepo($input: InitializeRepositoryInput!) { initializeRepository(repository: $input) { @@ -85,6 +103,17 @@ def api_backup(authorized_client, service): return response +def api_remove(authorized_client): + response = authorized_client.post( + "/graphql", + json={ + "query": API_REMOVE_REPOSITORY_MUTATION, + "variables": {}, + }, + ) + return response + + def api_init_without_key( authorized_client, kind, login, password, location_name, location_id ): @@ -193,3 +222,17 @@ def test_reinit(authorized_client, dummy_service, tmpdir): job = data["job"] assert Jobs.get_job(job["uid"]).status == JobStatus.FINISHED + + +def test_remove(authorized_client, generic_userdata): + response = api_remove(authorized_client) + data = get_data(response)["removeRepository"] + assert_ok(data) + + configuration = data["configuration"] + assert configuration["provider"] == "BACKBLAZE" + assert configuration["locationId"] == "" + assert configuration["locationName"] == "selfprivacy" + # still generated every time it is missing + assert len(configuration["encryptionKey"]) > 1 + assert configuration["isInitialized"] is False