mirror of
https://github.com/borgbase/vorta
synced 2025-03-10 06:03:46 +00:00
Add more tests and sample borg output.
This commit is contained in:
parent
33f7919bb5
commit
64b391fae1
12 changed files with 294 additions and 12 deletions
|
@ -18,8 +18,8 @@
|
|||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>800</width>
|
||||
<height>600</height>
|
||||
<width>16777215</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
|
|
|
@ -67,6 +67,9 @@ class BackupProfileModel(pw.Model):
|
|||
prune_month = pw.IntegerField(default=6)
|
||||
prune_year = pw.IntegerField(default=2)
|
||||
|
||||
def refresh(self):
|
||||
return type(self).get(self._pk_expr())
|
||||
|
||||
class Meta:
|
||||
database = db
|
||||
|
||||
|
|
32
tests/borg_json_output/create_stderr.json
Normal file
32
tests/borg_json_output/create_stderr.json
Normal file
|
@ -0,0 +1,32 @@
|
|||
{"original_size": 0, "compressed_size": 0, "deduplicated_size": 0, "nfiles": 0, "time": 1541485444.8891299, "type": "archive_progress", "path": "Users/manu/Documents/financial/Allianz"}
|
||||
{"message": "Initializing cache transaction: Reading config", "operation": 1, "msgid": "cache.begin_transaction", "type": "progress_message", "finished": false, "time": 1541485444.8924448}
|
||||
{"message": "Initializing cache transaction: Reading chunks", "operation": 1, "msgid": "cache.begin_transaction", "type": "progress_message", "finished": false, "time": 1541485444.893108}
|
||||
{"message": "Initializing cache transaction: Reading files", "operation": 1, "msgid": "cache.begin_transaction", "type": "progress_message", "finished": false, "time": 1541485444.893551}
|
||||
{"operation": 1, "msgid": "cache.begin_transaction", "type": "progress_message", "finished": true, "time": 1541485444.894015}
|
||||
{"original_size": 219715, "compressed_size": 201311, "deduplicated_size": 201311, "nfiles": 0, "time": 1541485446.009297, "type": "archive_progress", "path": "Users/manu/Documents/financial/Allianz/DOC-TOB-IN-EN-1114.pdf"}
|
||||
{"type": "file_status", "status": "M", "path": "/Users/manu/Documents/financial/Allianz/DOC-TOB-IN-EN-1114.pdf"}
|
||||
{"type": "file_status", "status": "M", "path": "/Users/manu/Documents/financial/Allianz/IBG_Nov_2013_1.pdf"}
|
||||
{"type": "file_status", "status": "M", "path": "/Users/manu/Documents/financial/Allianz/cert-2014.pdf"}
|
||||
{"type": "file_status", "status": "M", "path": "/Users/manu/Documents/financial/Allianz/cert-2015.pdf"}
|
||||
{"original_size": 2397780, "compressed_size": 2333367, "deduplicated_size": 2333367, "nfiles": 4, "time": 1541485447.7346282, "type": "archive_progress", "path": "Users/manu/Documents/financial/Allianz/cert-2018.pdf"}
|
||||
{"type": "file_status", "status": "M", "path": "/Users/manu/Documents/financial/Allianz/cert-2018.pdf"}
|
||||
{"name": "borg.repository", "time": 1541485448.00131, "message": "Remote: Storage quota: 10.48 MB out of 1.00 GB used.", "type": "log_message", "levelname": "INFO"}
|
||||
{"original_size": 2476130, "compressed_size": 2407012, "deduplicated_size": 2407012, "nfiles": 5, "time": 1541485448.1266649, "type": "archive_progress", "path": "Users/manu/Documents/financial/Allianz/invoice-2016.pdf"}
|
||||
{"type": "file_status", "status": "M", "path": "/Users/manu/Documents/financial/Allianz/invoice-2016.pdf"}
|
||||
{"original_size": 2579891, "compressed_size": 2508476, "deduplicated_size": 2508476, "nfiles": 6, "time": 1541485448.490915, "type": "archive_progress", "path": "Users/manu/Documents/financial/Allianz/invoice-2018.pdf"}
|
||||
{"type": "file_status", "status": "M", "path": "/Users/manu/Documents/financial/Allianz/invoice-2018.pdf"}
|
||||
{"original_size": 2682858, "compressed_size": 2610103, "deduplicated_size": 2610103, "nfiles": 7, "time": 1541485448.794081, "type": "archive_progress", "path": "Users/manu/Documents/financial/Allianz/invoice-2017.pdf"}
|
||||
{"type": "file_status", "status": "M", "path": "/Users/manu/Documents/financial/Allianz/invoice-2017.pdf"}
|
||||
{"type": "file_status", "status": "M", "path": "/Users/manu/Documents/financial/Allianz/membership card.pdf"}
|
||||
{"original_size": 3034142, "compressed_size": 2951714, "deduplicated_size": 2951714, "nfiles": 9, "time": 1541485449.0265841, "type": "archive_progress", "path": "Users/manu/Documents/financial/Allianz/invoice-2019"}
|
||||
{"type": "file_status", "status": "A", "path": "/Users/manu/Documents/financial/Allianz/invoice-2019"}
|
||||
{"type": "file_status", "status": "d", "path": "/Users/manu/Documents/financial/Allianz"}
|
||||
{"name": "borg.repository", "time": 1541485454.6220284, "message": "Remote: Storage quota: 13.44 MB out of 1.00 GB used.", "type": "log_message", "levelname": "INFO"}
|
||||
{"total": 2, "type": "progress_percent", "time": 1541485454.960747, "finished": false, "current": 1, "message": "Remote: Compacting segments 0%", "info": null, "msgid": "repository.compact_segments", "operation": 1}
|
||||
{"total": 2, "type": "progress_percent", "time": 1541485454.9839778, "finished": false, "current": 2, "message": "Remote: Compacting segments 50%", "info": null, "msgid": "repository.compact_segments", "operation": 1}
|
||||
{"time": 1541485454.9841166, "operation": 1, "finished": true, "type": "progress_percent", "msgid": "repository.compact_segments"}
|
||||
{"message": "Saving files cache", "operation": 2, "msgid": "cache.commit", "type": "progress_message", "finished": false, "time": 1541485455.270078}
|
||||
{"message": "Saving chunks cache", "operation": 2, "msgid": "cache.commit", "type": "progress_message", "finished": false, "time": 1541485455.273303}
|
||||
{"message": "Saving cache config", "operation": 2, "msgid": "cache.commit", "type": "progress_message", "finished": false, "time": 1541485455.2741609}
|
||||
{"operation": 2, "msgid": "cache.commit", "type": "progress_message", "finished": true, "time": 1541485455.276022}
|
||||
{"original_size": 3038309, "compressed_size": 2954077, "deduplicated_size": 2954077, "nfiles": 10, "time": 1541485455.2761118, "type": "archive_progress", "path": ""}
|
48
tests/borg_json_output/create_stdout.json
Normal file
48
tests/borg_json_output/create_stdout.json
Normal file
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
"archive": {
|
||||
"command_line": [
|
||||
"/Users/manu/.pyenv/versions/3.7.1/bin/borg",
|
||||
"create",
|
||||
"--list",
|
||||
"--progress",
|
||||
"--info",
|
||||
"--log-json",
|
||||
"--json",
|
||||
"w66xh7lj@w66xh7lj.repo.borgbase.com:repo::test-snapadkkfdddasdf",
|
||||
"/Users/manu/Documents/financial/Allianz"
|
||||
],
|
||||
"duration": 4.454152,
|
||||
"end": "2018-11-06T14:24:09.000000",
|
||||
"id": "b7a67208a9329bc48f7e2953b9803ffe0175e776a49d7f1a9c07581e3e7b5a17",
|
||||
"limits": {
|
||||
"max_archive_size": 2.851491780813361e-05
|
||||
},
|
||||
"name": "test-snapadkkfdddasdf",
|
||||
"start": "2018-11-06T14:24:04.000000",
|
||||
"stats": {
|
||||
"compressed_size": 2954077,
|
||||
"deduplicated_size": 2954077,
|
||||
"nfiles": 10,
|
||||
"original_size": 3038309
|
||||
}
|
||||
},
|
||||
"cache": {
|
||||
"path": "/Users/manu/.cache/borg/daf2e2b94a1b57f0effc96939813ef58d0af04414f92f87c3e092a99adaa90eb",
|
||||
"stats": {
|
||||
"total_chunks": 97,
|
||||
"total_csize": 23892256,
|
||||
"total_size": 27955635,
|
||||
"total_unique_chunks": 63,
|
||||
"unique_csize": 13435127,
|
||||
"unique_size": 15520474
|
||||
}
|
||||
},
|
||||
"encryption": {
|
||||
"mode": "repokey-blake2"
|
||||
},
|
||||
"repository": {
|
||||
"id": "daf2e2b94a1b57f0effc96939813ef58d0af04414f92f87c3e092a99adaa90eb",
|
||||
"last_modified": "2018-11-06T14:24:14.000000",
|
||||
"location": "ssh://w66xh7lj@w66xh7lj.repo.borgbase.com/./repo"
|
||||
}
|
||||
}
|
20
tests/borg_json_output/info_stderr.json
Normal file
20
tests/borg_json_output/info_stderr.json
Normal file
|
@ -0,0 +1,20 @@
|
|||
{"type": "log_message", "time": 1541485706.185808, "message": "using builtin fallback logging configuration", "levelname": "DEBUG", "name": "borg.logger"}
|
||||
{"type": "log_message", "time": 1541485706.329196, "message": "35 self tests completed in 0.14 seconds", "levelname": "DEBUG", "name": "borg.archiver"}
|
||||
{"type": "log_message", "time": 1541485706.32982, "message": "SSH command line: ['ssh', 'w66xh7lj@w66xh7lj.repo.borgbase.com', 'borg', 'serve', '--umask=077', '--debug']", "levelname": "DEBUG", "name": "borg.remote"}
|
||||
{"type": "log_message", "time": 1541485712.0352168, "message": "Remote: using builtin fallback logging configuration", "levelname": "DEBUG", "name": "borg.logger"}
|
||||
{"type": "log_message", "time": 1541485712.10305, "message": "Remote: 35 self tests completed in 0.16 seconds", "levelname": "DEBUG", "name": "borg.archiver"}
|
||||
{"type": "log_message", "time": 1541485711.9786682, "levelname": "DEBUG", "message": "Remote: using builtin fallback logging configuration", "name": "borg.logger"}
|
||||
{"type": "log_message", "time": 1541485711.9788692, "levelname": "DEBUG", "message": "Remote: Initialized logging system for JSON-based protocol", "name": "borg.remote"}
|
||||
{"type": "log_message", "time": 1541485712.2395813, "levelname": "DEBUG", "message": "Remote: Resolving repository path b'repo'", "name": "root"}
|
||||
{"type": "log_message", "time": 1541485712.240386, "levelname": "DEBUG", "message": "Remote: Resolved repository path to '/srv/repos/w66xh7lj/repo'", "name": "root"}
|
||||
{"type": "log_message", "time": 1541485712.7960937, "levelname": "DEBUG", "message": "Remote: Verified integrity of /srv/repos/w66xh7lj/repo/index.153", "name": "borg.crypto.file_integrity"}
|
||||
{"type": "log_message", "time": 1541485713.763066, "message": "TAM-verified manifest", "levelname": "DEBUG", "name": "borg.crypto.key"}
|
||||
{"type": "log_message", "time": 1541485713.779689, "message": "security: read previous location 'ssh://w66xh7lj@w66xh7lj.repo.borgbase.com/./repo'", "levelname": "DEBUG", "name": "borg.cache"}
|
||||
{"type": "log_message", "time": 1541485713.780284, "message": "security: read manifest timestamp '2018-11-06T06:24:14.199720'", "levelname": "DEBUG", "name": "borg.cache"}
|
||||
{"type": "log_message", "time": 1541485713.780406, "message": "security: determined newest manifest timestamp as 2018-11-06T06:24:14.199720", "levelname": "DEBUG", "name": "borg.cache"}
|
||||
{"type": "log_message", "time": 1541485713.7819798, "message": "security: repository checks ok, allowing access", "levelname": "DEBUG", "name": "borg.cache"}
|
||||
{"type": "log_message", "time": 1541485713.7866921, "message": "Verified integrity of /Users/manu/.cache/borg/daf2e2b94a1b57f0effc96939813ef58d0af04414f92f87c3e092a99adaa90eb/chunks", "levelname": "DEBUG", "name": "borg.crypto.file_integrity"}
|
||||
{"type": "log_message", "time": 1541485713.7872949, "message": "security: read previous location 'ssh://w66xh7lj@w66xh7lj.repo.borgbase.com/./repo'", "levelname": "DEBUG", "name": "borg.cache"}
|
||||
{"type": "log_message", "time": 1541485713.787873, "message": "security: read manifest timestamp '2018-11-06T06:24:14.199720'", "levelname": "DEBUG", "name": "borg.cache"}
|
||||
{"type": "log_message", "time": 1541485713.788007, "message": "security: determined newest manifest timestamp as 2018-11-06T06:24:14.199720", "levelname": "DEBUG", "name": "borg.cache"}
|
||||
{"type": "log_message", "time": 1541485713.788181, "message": "security: repository checks ok, allowing access", "levelname": "DEBUG", "name": "borg.cache"}
|
22
tests/borg_json_output/info_stdout.json
Normal file
22
tests/borg_json_output/info_stdout.json
Normal file
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"cache": {
|
||||
"path": "/Users/manu/.cache/borg/daf2e2b94a1b57f0effc96939813ef58d0af04414f92f87c3e092a99adaa90eb",
|
||||
"stats": {
|
||||
"total_chunks": 97,
|
||||
"total_csize": 23892256,
|
||||
"total_size": 27955635,
|
||||
"total_unique_chunks": 63,
|
||||
"unique_csize": 13435127,
|
||||
"unique_size": 15520474
|
||||
}
|
||||
},
|
||||
"encryption": {
|
||||
"mode": "repokey-blake2"
|
||||
},
|
||||
"repository": {
|
||||
"id": "daf2e2b94a1b57f0effc96939813ef58d0af04414f92f87c3e092a99adaa90eb",
|
||||
"last_modified": "2018-11-06T14:24:14.000000",
|
||||
"location": "ssh://w66xh7lj@w66xh7lj.repo.borgbase.com/./repo"
|
||||
},
|
||||
"security_dir": "/Users/manu/.config/borg/security/daf2e2b94a1b57f0effc96939813ef58d0af04414f92f87c3e092a99adaa90eb"
|
||||
}
|
17
tests/borg_json_output/list_stderr.json
Normal file
17
tests/borg_json_output/list_stderr.json
Normal file
|
@ -0,0 +1,17 @@
|
|||
{"type": "log_message", "time": 1541483306.565752, "message": "using builtin fallback logging configuration", "levelname": "DEBUG", "name": "borg.logger"}
|
||||
{"type": "log_message", "time": 1541483306.700531, "message": "35 self tests completed in 0.13 seconds", "levelname": "DEBUG", "name": "borg.archiver"}
|
||||
{"type": "log_message", "time": 1541483306.701061, "message": "SSH command line: ['ssh', 'i0fis593@i0fis593.repo.borgbase.com', 'borg', 'serve', '--umask=077', '--debug']", "levelname": "DEBUG", "name": "borg.remote"}
|
||||
{"type": "log_message", "time": 1541483311.98485, "message": "Remote: using builtin fallback logging configuration", "levelname": "DEBUG", "name": "borg.logger"}
|
||||
{"type": "log_message", "time": 1541483312.104528, "message": "Remote: 35 self tests completed in 0.30 seconds", "levelname": "DEBUG", "name": "borg.archiver"}
|
||||
{"type": "log_message", "time": 1541483311.9681718, "name": "borg.logger", "message": "Remote: using builtin fallback logging configuration", "levelname": "DEBUG"}
|
||||
{"type": "log_message", "time": 1541483311.9683647, "name": "borg.remote", "message": "Remote: Initialized logging system for JSON-based protocol", "levelname": "DEBUG"}
|
||||
{"type": "log_message", "time": 1541483312.2289863, "name": "root", "message": "Remote: Resolving repository path b'repo'", "levelname": "DEBUG"}
|
||||
{"type": "log_message", "time": 1541483312.2298186, "name": "root", "message": "Remote: Resolved repository path to '/srv/repos/i0fis593/repo'", "levelname": "DEBUG"}
|
||||
{"type": "log_message", "time": 1541483312.525757, "name": "borg.crypto.file_integrity", "message": "Remote: Verified integrity of /srv/repos/i0fis593/repo/index.81", "levelname": "DEBUG"}
|
||||
Enter passphrase for key ssh://i0fis593@i0fis593.repo.borgbase.com/./repo:
|
||||
{"type": "log_message", "time": 1541483318.230314, "message": "TAM-verified manifest", "levelname": "DEBUG", "name": "borg.crypto.key"}
|
||||
{"type": "log_message", "time": 1541483318.234584, "message": "security: read previous location 'ssh://i0fis593@i0fis593.repo.borgbase.com/./repo'", "levelname": "DEBUG", "name": "borg.cache"}
|
||||
{"type": "log_message", "time": 1541483318.2360609, "message": "security: read manifest timestamp '2018-11-06T04:35:11.031517'", "levelname": "DEBUG", "name": "borg.cache"}
|
||||
{"type": "log_message", "time": 1541483318.236227, "message": "security: determined newest manifest timestamp as 2018-11-06T04:35:11.031517", "levelname": "DEBUG", "name": "borg.cache"}
|
||||
{"type": "log_message", "time": 1541483318.238312, "message": "security: repository checks ok, allowing access", "levelname": "DEBUG", "name": "borg.cache"}
|
||||
{"type": "log_message", "time": 1541483318.244082, "message": "RemoteRepository: 213 B bytes sent, 4.19 kB bytes received, 6 messages sent", "levelname": "DEBUG", "name": "borg.remote"}
|
60
tests/borg_json_output/list_stdout.json
Normal file
60
tests/borg_json_output/list_stdout.json
Normal file
|
@ -0,0 +1,60 @@
|
|||
{
|
||||
"archives": [
|
||||
{
|
||||
"archive": "nyx2.local-2018-11-04T23:19:04.864971",
|
||||
"barchive": "nyx2.local-2018-11-04T23:19:04.864971",
|
||||
"id": "32c86b44565e0f517abb3f1982f2789794773269ffc233e63c4f9b7e70527147",
|
||||
"name": "nyx2.local-2018-11-04T23:19:04.864971",
|
||||
"start": "2018-11-04T23:19:15.000000",
|
||||
"time": "2018-11-04T23:19:15.000000"
|
||||
},
|
||||
{
|
||||
"archive": "nyx2.local-2018-11-05T22:12:14.375598",
|
||||
"barchive": "nyx2.local-2018-11-05T22:12:14.375598",
|
||||
"id": "6130a386f6a8e44efa35a3ab727a7116402edd9ef426c974b1ef40657313be05",
|
||||
"name": "nyx2.local-2018-11-05T22:12:14.375598",
|
||||
"start": "2018-11-05T22:12:45.000000",
|
||||
"time": "2018-11-05T22:12:45.000000"
|
||||
},
|
||||
{
|
||||
"archive": "nyx2.local-2018-11-05T22:13:23.166918",
|
||||
"barchive": "nyx2.local-2018-11-05T22:13:23.166918",
|
||||
"id": "185d842309bc72e54ff3ca12c8022c473563c33435db413fdd7de1cab38ae9cf",
|
||||
"name": "nyx2.local-2018-11-05T22:13:23.166918",
|
||||
"start": "2018-11-05T22:13:32.000000",
|
||||
"time": "2018-11-05T22:13:32.000000"
|
||||
},
|
||||
{
|
||||
"archive": "nyx2.local-2018-11-05T23:05:00.117950",
|
||||
"barchive": "nyx2.local-2018-11-05T23:05:00.117950",
|
||||
"id": "1bdbfedd59bd7222c3a8cc1a0188966b5db9484a3b0377009499b2c18d4f8ec5",
|
||||
"name": "nyx2.local-2018-11-05T23:05:00.117950",
|
||||
"start": "2018-11-05T23:05:09.000000",
|
||||
"time": "2018-11-05T23:05:09.000000"
|
||||
},
|
||||
{
|
||||
"archive": "nyx2.local-2018-11-06T09:35:00.569691",
|
||||
"barchive": "nyx2.local-2018-11-06T09:35:00.569691",
|
||||
"id": "dd59bb26c1eed3aa21424a252cd73efcff0252156c50d67fb806a3a772c7cb48",
|
||||
"name": "nyx2.local-2018-11-06T09:35:00.569691",
|
||||
"start": "2018-11-06T09:35:10.000000",
|
||||
"time": "2018-11-06T09:35:10.000000"
|
||||
},
|
||||
{
|
||||
"archive": "nyx2.local-2018-11-06T12:35:00.087922",
|
||||
"barchive": "nyx2.local-2018-11-06T12:35:00.087922",
|
||||
"id": "0ad78376f9e8d0f9ad359535c582da910b12a3d8c61ee5cc30bc57b1eb4c1b9a",
|
||||
"name": "nyx2.local-2018-11-06T12:35:00.087922",
|
||||
"start": "2018-11-06T12:35:09.000000",
|
||||
"time": "2018-11-06T12:35:09.000000"
|
||||
}
|
||||
],
|
||||
"encryption": {
|
||||
"mode": "repokey-blake2"
|
||||
},
|
||||
"repository": {
|
||||
"id": "3c1861de5908546a65409ed6b98024c0a4845d5348496010896798368c2424dd",
|
||||
"last_modified": "2018-11-06T12:35:11.000000",
|
||||
"location": "ssh://i0fis593@i0fis593.repo.borgbase.com/./repo"
|
||||
}
|
||||
}
|
|
@ -1,14 +1,37 @@
|
|||
|
||||
import io
|
||||
import pytest
|
||||
import peewee
|
||||
|
||||
import vorta
|
||||
from vorta.application import VortaApp
|
||||
from vorta.models import RepoModel, SourceDirModel
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def app(tmpdir):
|
||||
def app(tmpdir, qtbot):
|
||||
tmp_db = tmpdir.join('settings.sqlite')
|
||||
mock_db = peewee.SqliteDatabase(str(tmp_db))
|
||||
vorta.models.init_db(mock_db)
|
||||
return VortaApp([])
|
||||
app = VortaApp([])
|
||||
qtbot.addWidget(app.main_window)
|
||||
return app
|
||||
|
||||
@pytest.fixture()
|
||||
def app_with_repo(app):
|
||||
profile = app.profile()
|
||||
new_repo = RepoModel(url='i0fi93@i593.repo.borgbase.com:repo')
|
||||
new_repo.save()
|
||||
profile.repo = new_repo
|
||||
profile.save()
|
||||
|
||||
source_dir = SourceDirModel(dir='/tmp', repo=new_repo)
|
||||
source_dir.save()
|
||||
return app
|
||||
|
||||
@pytest.fixture
|
||||
def borg_json_output():
|
||||
def _read_json(subcommand):
|
||||
stdout = open(f'tests/borg_json_output/{subcommand}_stdout.json').read()
|
||||
stderr = open(f'tests/borg_json_output/{subcommand}_stderr.json').read()
|
||||
return io.StringIO(stdout), io.StringIO(stderr)
|
||||
return _read_json
|
||||
|
|
|
@ -1,19 +1,18 @@
|
|||
import io
|
||||
from PyQt5 import QtCore
|
||||
|
||||
import vorta.borg.borg_thread
|
||||
import vorta.models
|
||||
from vorta.views.repo_add import AddRepoWindow
|
||||
from vorta.models import EventLogModel, RepoModel
|
||||
from vorta.models import EventLogModel, RepoModel, SnapshotModel
|
||||
|
||||
|
||||
def test_repo_tab(app, qtbot):
|
||||
def test_create_error(app, qtbot):
|
||||
main = app.main_window
|
||||
qtbot.mouseClick(main.createStartBtn, QtCore.Qt.LeftButton)
|
||||
assert main.createProgressText.text() == 'Add a remote backup repository first.'
|
||||
|
||||
|
||||
def test_repo_add(app, qtbot, mocker):
|
||||
def test_repo_add(app, qtbot, mocker, borg_json_output):
|
||||
# Add new repo window
|
||||
main = app.main_window
|
||||
add_repo_window = AddRepoWindow(main.repoTab)
|
||||
|
@ -27,8 +26,9 @@ def test_repo_add(app, qtbot, mocker):
|
|||
|
||||
qtbot.keyClicks(add_repo_window.passwordLineEdit, 'long-password-long')
|
||||
|
||||
popen_result =mocker.MagicMock(stdout=io.StringIO("some initial binary data"),
|
||||
stderr=io.StringIO("some initial binary data"),
|
||||
stdout, stderr = borg_json_output('info')
|
||||
popen_result =mocker.MagicMock(stdout=stdout,
|
||||
stderr=stderr,
|
||||
returncode=0)
|
||||
mocker.patch.object(vorta.borg.borg_thread, 'Popen', return_value=popen_result)
|
||||
|
||||
|
@ -42,3 +42,20 @@ def test_repo_add(app, qtbot, mocker):
|
|||
# assert EventLogModel.select().count() == 2
|
||||
assert RepoModel.get(id=1).url == 'aaabbb.com:repo'
|
||||
|
||||
def test_create(app_with_repo, borg_json_output, mocker, qtbot):
|
||||
main = app_with_repo.main_window
|
||||
stdout, stderr = borg_json_output('create')
|
||||
popen_result =mocker.MagicMock(stdout=stdout,
|
||||
stderr=stderr,
|
||||
returncode=0)
|
||||
mocker.patch.object(vorta.borg.borg_thread, 'Popen', return_value=popen_result)
|
||||
|
||||
qtbot.mouseClick(main.createStartBtn, QtCore.Qt.LeftButton)
|
||||
qtbot.waitUntil(lambda: main.createProgressText.text().startswith('INFO: Remote'))
|
||||
assert EventLogModel.select().count() == 1
|
||||
assert SnapshotModel.select().count() == 1
|
||||
assert RepoModel.get(id=1).unique_size == 15520474
|
||||
assert main.createStartBtn.isEnabled()
|
||||
assert main.snapshotTab.snapshotTable.rowCount() == 1
|
||||
assert main.scheduleTab.logTableWidget.rowCount() == 1
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
from datetime import datetime as dt, date, time
|
||||
from PyQt5 import QtCore
|
||||
|
||||
from vorta.views.schedule_tab import ScheduleTab
|
||||
|
||||
def test_schedule_tab(app, qtbot):
|
||||
main = app.main_window
|
||||
|
|
41
tests/test_snapshots.py
Normal file
41
tests/test_snapshots.py
Normal file
|
@ -0,0 +1,41 @@
|
|||
import io
|
||||
import pytest
|
||||
from PyQt5 import QtCore
|
||||
|
||||
from vorta.models import BackupProfileModel, SnapshotModel
|
||||
import vorta.borg
|
||||
|
||||
|
||||
def test_prune_intervals(app, qtbot):
|
||||
prune_intervals = ['hour', 'day', 'week', 'month', 'year']
|
||||
main = app.main_window
|
||||
tab = main.snapshotTab
|
||||
profile = BackupProfileModel.get(id=1)
|
||||
|
||||
for i in prune_intervals:
|
||||
getattr(tab, f'prune_{i}').setValue(9)
|
||||
tab.save_prune_setting(None)
|
||||
profile = profile.refresh()
|
||||
assert getattr(profile, f'prune_{i}') == 9
|
||||
|
||||
|
||||
def test_repo_list(app_with_repo, qtbot, mocker, borg_json_output):
|
||||
main = app_with_repo.main_window
|
||||
tab = main.snapshotTab
|
||||
main.tabWidget.setCurrentIndex(3)
|
||||
tab.list_action()
|
||||
assert not tab.checkButton.isEnabled()
|
||||
|
||||
stdout, stderr = borg_json_output('list')
|
||||
popen_result =mocker.MagicMock(stdout=stdout,
|
||||
stderr=stderr,
|
||||
returncode=0)
|
||||
mocker.patch.object(vorta.borg.borg_thread, 'Popen', return_value=popen_result)
|
||||
|
||||
with qtbot.waitSignal(app_with_repo.backup_finished_event, timeout=3000) as blocker:
|
||||
pass
|
||||
|
||||
assert SnapshotModel.select().count() == 6
|
||||
assert main.createProgressText.text() == 'Refreshing snapshots done.'
|
||||
assert tab.checkButton.isEnabled()
|
||||
|
Loading…
Add table
Reference in a new issue