2023-08-05 13:49:45 +00:00
|
|
|
"""
|
|
|
|
This file contains tests that directly call borg commands and verify the exit code.
|
|
|
|
"""
|
|
|
|
|
|
|
|
from pathlib import Path
|
|
|
|
|
|
|
|
import pytest
|
|
|
|
import vorta.borg
|
|
|
|
import vorta.store.models
|
|
|
|
from vorta.borg.info_archive import BorgInfoArchiveJob
|
|
|
|
from vorta.borg.info_repo import BorgInfoRepoJob
|
|
|
|
from vorta.borg.prune import BorgPruneJob
|
|
|
|
|
|
|
|
|
|
|
|
def test_borg_prune(qapp, qtbot):
|
|
|
|
"""This test runs borg prune on a test repo directly without UI"""
|
|
|
|
params = BorgPruneJob.prepare(vorta.store.models.BackupProfileModel.select().first())
|
|
|
|
thread = BorgPruneJob(params['cmd'], params, qapp)
|
|
|
|
|
|
|
|
with qtbot.waitSignal(thread.result, **pytest._wait_defaults) as blocker:
|
|
|
|
blocker.connect(thread.updated)
|
|
|
|
thread.run()
|
|
|
|
|
|
|
|
assert blocker.args[0]['returncode'] == 0
|
|
|
|
|
|
|
|
|
|
|
|
def test_borg_repo_info(qapp, qtbot, tmpdir):
|
|
|
|
"""This test runs borg info on a test repo directly without UI"""
|
|
|
|
repo_info = {
|
|
|
|
'repo_url': str(Path(tmpdir).parent / 'repo0'),
|
|
|
|
'repo_name': 'repo0',
|
|
|
|
'extra_borg_arguments': '',
|
|
|
|
'ssh_key': '',
|
|
|
|
'password': '',
|
|
|
|
}
|
|
|
|
|
|
|
|
params = BorgInfoRepoJob.prepare(repo_info)
|
|
|
|
thread = BorgInfoRepoJob(params['cmd'], params, qapp)
|
|
|
|
|
|
|
|
with qtbot.waitSignal(thread.result, **pytest._wait_defaults) as blocker:
|
|
|
|
blocker.connect(thread.result)
|
|
|
|
thread.run()
|
|
|
|
|
|
|
|
assert blocker.args[0]['returncode'] == 0
|
|
|
|
|
|
|
|
|
2023-08-17 10:05:52 +00:00
|
|
|
def test_borg_archive_info(qapp, qtbot, archive_env):
|
2023-08-05 13:49:45 +00:00
|
|
|
"""Check that archive info command works"""
|
|
|
|
params = BorgInfoArchiveJob.prepare(vorta.store.models.BackupProfileModel.select().first(), "test-archive1")
|
|
|
|
thread = BorgInfoArchiveJob(params['cmd'], params, qapp)
|
|
|
|
|
|
|
|
with qtbot.waitSignal(thread.result, **pytest._wait_defaults) as blocker:
|
|
|
|
blocker.connect(thread.result)
|
|
|
|
thread.run()
|
|
|
|
|
|
|
|
assert blocker.args[0]['returncode'] == 0
|