selfprivacy-rest-api/tests/test_graphql/test_backup.py

64 lines
1.7 KiB
Python
Raw Normal View History

2023-02-03 17:04:35 +00:00
import pytest
import os.path as path
2023-02-03 17:04:35 +00:00
from selfprivacy_api.services.test_service import DummyService
from selfprivacy_api.backup import Backups
2023-02-01 11:58:55 +00:00
import selfprivacy_api.backup.providers as providers
from selfprivacy_api.backup.providers import AbstractBackupProvider
from selfprivacy_api.backup.providers.backblaze import Backblaze
from selfprivacy_api.graphql.queries.providers import BackupProvider
TESTFILE_BODY = "testytest!"
2023-02-08 14:05:25 +00:00
REPO_NAME = "test_backup"
2023-02-03 17:04:35 +00:00
@pytest.fixture()
def test_service(tmpdir):
testile_path = path.join(tmpdir, "testfile.txt")
with open(testile_path, "w") as file:
file.write(TESTFILE_BODY)
2023-02-08 14:05:25 +00:00
# we need this to not change get_location() much
class TestDummyService(DummyService, location=tmpdir):
2023-02-08 14:05:25 +00:00
pass
return TestDummyService()
2023-02-03 17:04:35 +00:00
@pytest.fixture()
2023-02-08 14:05:25 +00:00
def memory_backup() -> AbstractBackupProvider:
ProviderClass = providers.get_provider(BackupProvider.MEMORY)
assert ProviderClass is not None
memory_provider = ProviderClass(login="", key="")
assert memory_provider is not None
return memory_provider
@pytest.fixture()
def backups():
return Backups()
2023-02-01 11:58:55 +00:00
def test_select_backend():
provider = providers.get_provider(BackupProvider.BACKBLAZE)
assert provider is not None
assert provider == Backblaze
2023-02-03 17:04:35 +00:00
def test_backup_simple(test_service, memory_backup):
2023-02-03 17:04:35 +00:00
# temporarily incomplete
assert test_service is not None
assert memory_backup is not None
memory_backup.backuper.start_backup(test_service.get_location(), REPO_NAME)
def test_backup_service(test_service, backups):
backups.back_up(test_service)
2023-02-13 11:16:35 +00:00
def test_no_snapshots(memory_backup):
assert memory_backup.backuper.get_snapshots("") == []