From ca497f8815323d1a7dee53cc1a844e0a69dffe4e Mon Sep 17 00:00:00 2001 From: real-yfprojects <62463991+real-yfprojects@users.noreply.github.com> Date: Mon, 15 Aug 2022 19:02:40 +0200 Subject: [PATCH] Run hooks on the code base. This adds trailing lines to files, removes trailing white space in all the other lines and unifies line endings. Additionally it formats the test code with `black`. --- .git-blame-ignore-revs | 2 +- .gitattributes | 2 +- .github/workflows/test.yml | 4 +- .gitignore | 1 - .tx/config | 1 - .../fuse-2.9.2-namespace-conflict-fix.patch | 4 +- ...fuse-disable-sys-mount-under-flatpak.patch | 5 +- flatpak/dependencies/pyqt5.json | 2 +- flatpak/dependencies/python3-appdirs.json | 2 +- flatpak/dependencies/python3-paramiko.json | 2 +- flatpak/dependencies/python3-peewee.json | 2 +- flatpak/dependencies/python3-psutil.json | 2 +- flatpak/dependencies/python3-setuptools.json | 2 +- .../dependencies/python3-setuptools_git.json | 2 +- .../dependencies/python3-setuptools_scm.json | 2 +- flatpak/dependencies/python3-wheels.json | 2 +- package/entitlements.plist | 2 +- package/vorta.spec | 1 - src/vorta/assets/icons/broom-solid.svg | 2 +- src/vorta/assets/icons/folder-on-top.svg | 2 +- src/vorta/assets/icons/folder.svg | 2 +- src/vorta/assets/icons/minus.svg | 2 +- src/vorta/assets/icons/paste.svg | 2 +- src/vorta/i18n/ts/vorta.cs.ts | 8 +- src/vorta/i18n/ts/vorta.de.ts | 10 +- src/vorta/i18n/ts/vorta.es.ts | 6 +- src/vorta/i18n/ts/vorta.fi.ts | 10 +- src/vorta/i18n/ts/vorta.fr.ts | 10 +- src/vorta/i18n/ts/vorta.gl.ts | 8 +- src/vorta/i18n/ts/vorta.it.ts | 2 +- src/vorta/i18n/ts/vorta.nl.ts | 6 +- src/vorta/i18n/ts/vorta.ru.ts | 10 +- src/vorta/i18n/ts/vorta.sk.ts | 6 +- src/vorta/i18n/ts/vorta.sv.ts | 6 +- tests/conftest.py | 25 +- tests/network_manager/test_darwin.py | 13 +- tests/network_manager/test_network_manager.py | 86 +++-- tests/test_archives.py | 11 +- tests/test_diff.py | 309 ++++++++++-------- tests/test_import_export.py | 20 +- tests/test_misc.py | 13 +- tests/test_repo.py | 13 +- tests/test_schedule.py | 14 +- tests/test_scheduler.py | 70 ++-- tests/test_source.py | 4 +- tests/test_treemodel.py | 3 +- 46 files changed, 375 insertions(+), 338 deletions(-) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index f0c751d30..5c5d09a11 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -1,2 +1,2 @@ # Migrate code style to Black -b6a24debb78b953117a3f637db18942f370a4b85 \ No newline at end of file +b6a24debb78b953117a3f637db18942f370a4b85 diff --git a/.gitattributes b/.gitattributes index 84ef90f32..95105a373 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1 @@ -*.py diff=python \ No newline at end of file +*.py diff=python diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e27a09e19..e9ccec862 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -30,8 +30,8 @@ jobs: black --check . # - name: Run PyLint (info only) # run: pylint --rcfile=setup.cfg src --exit-zero - - + + test: timeout-minutes: 20 runs-on: ${{ matrix.os }} diff --git a/.gitignore b/.gitignore index 022ae91d7..061f6a9bc 100644 --- a/.gitignore +++ b/.gitignore @@ -21,4 +21,3 @@ src/vorta/i18n/ts/vorta.en.ts src/vorta/i18n/ts/vorta.en_US.ts flatpak/app/ flatpak/.flatpak-builder/ - diff --git a/.tx/config b/.tx/config index e0ffc9f49..8a9c57d26 100644 --- a/.tx/config +++ b/.tx/config @@ -7,4 +7,3 @@ minimum_perc = 80 source_file = src/vorta/i18n/ts/vorta.en.ts source_lang = en type = QT - diff --git a/flatpak/dependencies/fuse-2.9.2-namespace-conflict-fix.patch b/flatpak/dependencies/fuse-2.9.2-namespace-conflict-fix.patch index ae67e7d45..3dec9fb62 100644 --- a/flatpak/dependencies/fuse-2.9.2-namespace-conflict-fix.patch +++ b/flatpak/dependencies/fuse-2.9.2-namespace-conflict-fix.patch @@ -4,7 +4,7 @@ diff -up fuse-2.9.2/include/fuse_kernel.h.conflictfix fuse-2.9.2/include/fuse_ke @@ -88,12 +88,16 @@ #ifndef _LINUX_FUSE_H #define _LINUX_FUSE_H - + -#include +#ifdef __linux__ +#include @@ -16,6 +16,6 @@ diff -up fuse-2.9.2/include/fuse_kernel.h.conflictfix fuse-2.9.2/include/fuse_ke #define __s32 int32_t #define __u16 uint16_t +#endif - + /* * Version negotiation: diff --git a/flatpak/dependencies/fuse-disable-sys-mount-under-flatpak.patch b/flatpak/dependencies/fuse-disable-sys-mount-under-flatpak.patch index 9c2f65e8f..fa2977adf 100644 --- a/flatpak/dependencies/fuse-disable-sys-mount-under-flatpak.patch +++ b/flatpak/dependencies/fuse-disable-sys-mount-under-flatpak.patch @@ -14,13 +14,12 @@ index 7a18c11..1667db2 100644 @@ -392,6 +392,9 @@ static int fuse_mount_sys(const char *mnt, struct mount_opts *mo, int fd; int res; - + + /* disable in flatpak */ + return -2; + if (!mnt) { fprintf(stderr, "fuse: missing mountpoint parameter\n"); return -1; --- +-- 2.17.0.rc2 - diff --git a/flatpak/dependencies/pyqt5.json b/flatpak/dependencies/pyqt5.json index d55b0e18c..b72fe36bc 100644 --- a/flatpak/dependencies/pyqt5.json +++ b/flatpak/dependencies/pyqt5.json @@ -41,4 +41,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/flatpak/dependencies/python3-appdirs.json b/flatpak/dependencies/python3-appdirs.json index 74a5baab8..bed127131 100644 --- a/flatpak/dependencies/python3-appdirs.json +++ b/flatpak/dependencies/python3-appdirs.json @@ -11,4 +11,4 @@ "sha256": "d8b24664561d0d34ddfaec54636d502d7cea6e29c3eaf68f3df6180863e2166e" } ] -} \ No newline at end of file +} diff --git a/flatpak/dependencies/python3-paramiko.json b/flatpak/dependencies/python3-paramiko.json index 5b4637a41..4dbb10205 100644 --- a/flatpak/dependencies/python3-paramiko.json +++ b/flatpak/dependencies/python3-paramiko.json @@ -61,4 +61,4 @@ "sha256": "a8975a7df3560c9f1e2b43dc54ebd40fd00a7017392ca5445ce7df409f900fcb" } ] -} \ No newline at end of file +} diff --git a/flatpak/dependencies/python3-peewee.json b/flatpak/dependencies/python3-peewee.json index 4e3566fe8..fc547df44 100644 --- a/flatpak/dependencies/python3-peewee.json +++ b/flatpak/dependencies/python3-peewee.json @@ -11,4 +11,4 @@ "sha256": "f3f5c80c51b632d031f60454accadd84f166453a471bff63093ca674973f2a4e" } ] -} \ No newline at end of file +} diff --git a/flatpak/dependencies/python3-psutil.json b/flatpak/dependencies/python3-psutil.json index c01175d48..85b6eacf4 100644 --- a/flatpak/dependencies/python3-psutil.json +++ b/flatpak/dependencies/python3-psutil.json @@ -11,4 +11,4 @@ "sha256": "863a85c1c0a5103a12c05a35e59d336e1d665747e531256e061213e2e90f63f3" } ] -} \ No newline at end of file +} diff --git a/flatpak/dependencies/python3-setuptools.json b/flatpak/dependencies/python3-setuptools.json index 66df54042..8cdc6ef21 100644 --- a/flatpak/dependencies/python3-setuptools.json +++ b/flatpak/dependencies/python3-setuptools.json @@ -67,4 +67,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/flatpak/dependencies/python3-setuptools_git.json b/flatpak/dependencies/python3-setuptools_git.json index eb54eb999..53dd2bd7f 100644 --- a/flatpak/dependencies/python3-setuptools_git.json +++ b/flatpak/dependencies/python3-setuptools_git.json @@ -11,4 +11,4 @@ "sha256": "ff64136da01aabba76ae88b050e7197918d8b2139ccbf6144e14d472b9c40445" } ] -} \ No newline at end of file +} diff --git a/flatpak/dependencies/python3-setuptools_scm.json b/flatpak/dependencies/python3-setuptools_scm.json index 99c49e6e3..f5acb05f7 100644 --- a/flatpak/dependencies/python3-setuptools_scm.json +++ b/flatpak/dependencies/python3-setuptools_scm.json @@ -11,4 +11,4 @@ "sha256": "52ab47715fa0fc7d8e6cd15168d1a69ba995feb1505131c3e814eb7087b57358" } ] -} \ No newline at end of file +} diff --git a/flatpak/dependencies/python3-wheels.json b/flatpak/dependencies/python3-wheels.json index 4f8cf18bb..fe73c0f82 100644 --- a/flatpak/dependencies/python3-wheels.json +++ b/flatpak/dependencies/python3-wheels.json @@ -75,4 +75,4 @@ "sources": [] } ] -} \ No newline at end of file +} diff --git a/package/entitlements.plist b/package/entitlements.plist index 33740fa5b..721e335b8 100644 --- a/package/entitlements.plist +++ b/package/entitlements.plist @@ -10,4 +10,4 @@ com.apple.security.cs.disable-library-validation - \ No newline at end of file + diff --git a/package/vorta.spec b/package/vorta.spec index dd7ce49c9..714228c74 100644 --- a/package/vorta.spec +++ b/package/vorta.spec @@ -81,4 +81,3 @@ app = BUNDLE(coll, 'PATH': '/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/homebrew/bin' } }) - diff --git a/src/vorta/assets/icons/broom-solid.svg b/src/vorta/assets/icons/broom-solid.svg index 310fa606d..929a9fa56 100644 --- a/src/vorta/assets/icons/broom-solid.svg +++ b/src/vorta/assets/icons/broom-solid.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/src/vorta/assets/icons/folder-on-top.svg b/src/vorta/assets/icons/folder-on-top.svg index 9924b1599..0cab77445 100644 --- a/src/vorta/assets/icons/folder-on-top.svg +++ b/src/vorta/assets/icons/folder-on-top.svg @@ -1,3 +1,3 @@ - \ No newline at end of file + diff --git a/src/vorta/assets/icons/folder.svg b/src/vorta/assets/icons/folder.svg index 8a43015f0..6ad5046f9 100644 --- a/src/vorta/assets/icons/folder.svg +++ b/src/vorta/assets/icons/folder.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/src/vorta/assets/icons/minus.svg b/src/vorta/assets/icons/minus.svg index d450de453..ece52503c 100644 --- a/src/vorta/assets/icons/minus.svg +++ b/src/vorta/assets/icons/minus.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/src/vorta/assets/icons/paste.svg b/src/vorta/assets/icons/paste.svg index 5d2c47e9e..95398d03f 100644 --- a/src/vorta/assets/icons/paste.svg +++ b/src/vorta/assets/icons/paste.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/src/vorta/i18n/ts/vorta.cs.ts b/src/vorta/i18n/ts/vorta.cs.ts index b75a9bbb6..d78e2d6ff 100644 --- a/src/vorta/i18n/ts/vorta.cs.ts +++ b/src/vorta/i18n/ts/vorta.cs.ts @@ -1357,11 +1357,11 @@ - Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: - {0} + Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: + {0} {1} Aktualizace schématu se nezdařila, vyplňte hlášení chyby s odkazem v panelu Různé s následující chybou: - {0} + {0} {1} @@ -2128,4 +2128,4 @@ Zkuste repozitář odpojit a znovu přidat. Je třeba, aby heslo bylo delší než 8 znaků. - \ No newline at end of file + diff --git a/src/vorta/i18n/ts/vorta.de.ts b/src/vorta/i18n/ts/vorta.de.ts index 182fd4b3c..048f3c6b3 100644 --- a/src/vorta/i18n/ts/vorta.de.ts +++ b/src/vorta/i18n/ts/vorta.de.ts @@ -1355,11 +1355,11 @@ - Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: - {0} + Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: + {0} {1} - Schema-Upgrade Fehler, erstelle einen Bugreport auf dem Link um "Misc"-Tab, mit folgendem Fehler: - {0} + Schema-Upgrade Fehler, erstelle einen Bugreport auf dem Link um "Misc"-Tab, mit folgendem Fehler: + {0} {1} @@ -2125,4 +2125,4 @@ Try unlinking and re-adding your repo. Passwörter müssen länger als 8 Zeichen sein. - \ No newline at end of file + diff --git a/src/vorta/i18n/ts/vorta.es.ts b/src/vorta/i18n/ts/vorta.es.ts index e628b63e3..3b44545d2 100644 --- a/src/vorta/i18n/ts/vorta.es.ts +++ b/src/vorta/i18n/ts/vorta.es.ts @@ -1357,8 +1357,8 @@ - Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: - {0} + Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: + {0} {1} Falla al actualizar esquema, registre un reporte de error con el enlace en la pestaña Varios con el siguiente error: {0} @@ -2128,4 +2128,4 @@ Intente desvincular y volver a agregar su repositorio. Las contraseñas deben ser mayor a 8 caracteres. - \ No newline at end of file + diff --git a/src/vorta/i18n/ts/vorta.fi.ts b/src/vorta/i18n/ts/vorta.fi.ts index dda235971..555b9b0ba 100644 --- a/src/vorta/i18n/ts/vorta.fi.ts +++ b/src/vorta/i18n/ts/vorta.fi.ts @@ -1357,11 +1357,11 @@ - Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: - {0} + Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: + {0} {1} - Skeeman päivitys epäonnistui, lähetä virheraportti Sekalaiset-välilehdellä olevasta linkistä. Liitä raporttiin seuraavat tiedot: - {0} + Skeeman päivitys epäonnistui, lähetä virheraportti Sekalaiset-välilehdellä olevasta linkistä. Liitä raporttiin seuraavat tiedot: + {0} {1} @@ -2128,4 +2128,4 @@ Poista tietovaraston linkitys ja lisää se uudelleen. Salasanojen tulee olla pidempiä kuin 8 merkkiä. - \ No newline at end of file + diff --git a/src/vorta/i18n/ts/vorta.fr.ts b/src/vorta/i18n/ts/vorta.fr.ts index 4f2bceb39..31a4c7255 100644 --- a/src/vorta/i18n/ts/vorta.fr.ts +++ b/src/vorta/i18n/ts/vorta.fr.ts @@ -1354,11 +1354,11 @@ - Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: - {0} + Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: + {0} {1} - Échec de la mise à niveau de la base de donnée, veuillez remplir un rapport de bug en utilisant le lien dans l'onglet Divers avec l'erreur suivante : -{0} + Échec de la mise à niveau de la base de donnée, veuillez remplir un rapport de bug en utilisant le lien dans l'onglet Divers avec l'erreur suivante : +{0} {1} @@ -2125,4 +2125,4 @@ Essayez de dissocier et d'ajouter le dépôt à nouveau. Les mots de passe doivent faire plus de 8 caractères. - \ No newline at end of file + diff --git a/src/vorta/i18n/ts/vorta.gl.ts b/src/vorta/i18n/ts/vorta.gl.ts index 3c7480fe0..401e3a0ab 100644 --- a/src/vorta/i18n/ts/vorta.gl.ts +++ b/src/vorta/i18n/ts/vorta.gl.ts @@ -1210,11 +1210,11 @@ - Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: - {0} + Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: + {0} {1} Produciuse u fallo na actualización do esquema, presenta un informe de erro coa ligazón na lapela Varios co seguinte erro: -{0} +{0} {1} @@ -1837,4 +1837,4 @@ Probe a desvincular e engadir de novo o repositorio. Os contrasinais deben ter máis de 8 caracteres. - \ No newline at end of file + diff --git a/src/vorta/i18n/ts/vorta.it.ts b/src/vorta/i18n/ts/vorta.it.ts index b45545a5a..3c00af70c 100644 --- a/src/vorta/i18n/ts/vorta.it.ts +++ b/src/vorta/i18n/ts/vorta.it.ts @@ -1409,4 +1409,4 @@ - \ No newline at end of file + diff --git a/src/vorta/i18n/ts/vorta.nl.ts b/src/vorta/i18n/ts/vorta.nl.ts index 38f604486..b947c2a55 100644 --- a/src/vorta/i18n/ts/vorta.nl.ts +++ b/src/vorta/i18n/ts/vorta.nl.ts @@ -1357,8 +1357,8 @@ - Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: - {0} + Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: + {0} {1} Het schema kan niet worden bijgewerkt. Stel een bugmelding op via de link op het tabblad ‘Overig’. Stuur de volgende informatie mee: @@ -2129,4 +2129,4 @@ Herkoppel je repo. De wachtwoorden moeten meer dan 8 tekens bevatten. - \ No newline at end of file + diff --git a/src/vorta/i18n/ts/vorta.ru.ts b/src/vorta/i18n/ts/vorta.ru.ts index d27c9fc3f..394e5c82a 100644 --- a/src/vorta/i18n/ts/vorta.ru.ts +++ b/src/vorta/i18n/ts/vorta.ru.ts @@ -1210,11 +1210,11 @@ - Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: - {0} + Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: + {0} {1} - Сбой обновления схемы. Отправьте сообщение об ошибке по ссылке на вкладке Разное со следующим текстом ошибки: - {0} + Сбой обновления схемы. Отправьте сообщение об ошибке по ссылке на вкладке Разное со следующим текстом ошибки: + {0} {1} @@ -1889,4 +1889,4 @@ Try unlinking and re-adding your repo. Пароль должен быть длиннее 8 символов. - \ No newline at end of file + diff --git a/src/vorta/i18n/ts/vorta.sk.ts b/src/vorta/i18n/ts/vorta.sk.ts index 8b123ceb1..c3f9025d0 100644 --- a/src/vorta/i18n/ts/vorta.sk.ts +++ b/src/vorta/i18n/ts/vorta.sk.ts @@ -1357,8 +1357,8 @@ - Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: - {0} + Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: + {0} {1} Upgrade schémy skončil s chybou, otvorte hlásenie o chybe kliknutím na odkaz na karte Rôzne a skopírujte tento text: {0} @@ -2128,4 +2128,4 @@ Skúste tento repozitár odpojiť a opäť pridať. Heslá musia obsahovať aspoň 8 znakov. - \ No newline at end of file + diff --git a/src/vorta/i18n/ts/vorta.sv.ts b/src/vorta/i18n/ts/vorta.sv.ts index f6367b0f9..5d0cfb85f 100644 --- a/src/vorta/i18n/ts/vorta.sv.ts +++ b/src/vorta/i18n/ts/vorta.sv.ts @@ -1210,8 +1210,8 @@ - Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: - {0} + Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: + {0} {1} Schemauppgraderingsfel, skicka en felrapport med hjälp av länken i diversefliken och ange följande fel: {0} @@ -1890,4 +1890,4 @@ Försök avlänka och återansluta ditt förråd. Lösenord måste vara längre än 8 tecken. - \ No newline at end of file + diff --git a/tests/conftest.py b/tests/conftest.py index f5fe16139..9350489c2 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -20,8 +20,17 @@ ) from vorta.views.main_window import MainWindow -models = [RepoModel, RepoPassword, BackupProfileModel, SourceFileModel, - SettingsModel, ArchiveModel, WifiSettingModel, EventLogModel, SchemaVersion] +models = [ + RepoModel, + RepoPassword, + BackupProfileModel, + SourceFileModel, + SettingsModel, + ArchiveModel, + WifiSettingModel, + EventLogModel, + SchemaVersion, +] def pytest_configure(config): @@ -38,6 +47,7 @@ def qapp(tmpdir_factory): vorta.store.connection.init_db(mock_db) from vorta.application import VortaApp + VortaApp.set_borg_details_action = MagicMock() # Can't use pytest-mock in session scope VortaApp.scheduler = MagicMock() @@ -51,7 +61,12 @@ def qapp(tmpdir_factory): @pytest.fixture(scope='function', autouse=True) def init_db(qapp, qtbot, tmpdir_factory): tmp_db = tmpdir_factory.mktemp('Vorta').join('settings.sqlite') - mock_db = SqliteDatabase(str(tmp_db), pragmas={'journal_mode': 'wal', }) + mock_db = SqliteDatabase( + str(tmp_db), + pragmas={ + 'journal_mode': 'wal', + }, + ) vorta.store.connection.init_db(mock_db) default_profile = BackupProfileModel(name='Default') @@ -72,8 +87,7 @@ def init_db(qapp, qtbot, tmpdir_factory): test_archive1 = ArchiveModel(snapshot_id='99998', name='test-archive1', time=dt(2000, 1, 1, 0, 0), repo=1) test_archive1.save() - source_dir = SourceFileModel(dir='/tmp/another', repo=new_repo, dir_size=100, dir_files_count=18, - path_isdir=True) + source_dir = SourceFileModel(dir='/tmp/another', repo=new_repo, dir_size=100, dir_files_count=18, path_isdir=True) source_dir.save() qapp.main_window.deleteLater() @@ -110,6 +124,7 @@ def _read_json(subcommand): stdout = open(f'tests/borg_json_output/{subcommand}_stdout.json') stderr = open(f'tests/borg_json_output/{subcommand}_stderr.json') return stdout, stderr + return _read_json diff --git a/tests/network_manager/test_darwin.py b/tests/network_manager/test_darwin.py index 57ac8abdb..70c96cd2e 100644 --- a/tests/network_manager/test_darwin.py +++ b/tests/network_manager/test_darwin.py @@ -2,10 +2,13 @@ from vorta.network_status import darwin -@pytest.mark.parametrize('getpacket_output_name, expected', [ - ('normal_router', False), - ('phone', True), -]) +@pytest.mark.parametrize( + 'getpacket_output_name, expected', + [ + ('normal_router', False), + ('phone', True), + ], +) def test_is_network_metered(getpacket_output_name, expected, monkeypatch): def mock_getpacket(device): assert device == 'en0' @@ -80,7 +83,7 @@ def test_get_network_devices(monkeypatch): domain_name_server (ip_mult): {192.168.43.242} vendor_specific (opaque): 0000 41 4e 44 52 4f 49 44 5f 4d 45 54 45 52 45 44 ANDROID_METERED -""" +""", } NETWORKSETUP_OUTPUT = b"""\ diff --git a/tests/network_manager/test_network_manager.py b/tests/network_manager/test_network_manager.py index 8e58221c4..2c27a0d17 100644 --- a/tests/network_manager/test_network_manager.py +++ b/tests/network_manager/test_network_manager.py @@ -14,10 +14,7 @@ @pytest.fixture def mock_adapter(): - return MagicMock( - spec_set=NetworkManagerDBusAdapter, - wraps=UncallableNetworkManagerDBusAdapter() - ) + return MagicMock(spec_set=NetworkManagerDBusAdapter, wraps=UncallableNetworkManagerDBusAdapter()) @pytest.fixture @@ -29,13 +26,16 @@ def test_is_network_status_available(nm_monitor): assert nm_monitor.is_network_status_available() is True -@pytest.mark.parametrize('global_metered_status, expected', [ - (NMMetered.UNKNOWN, False), - (NMMetered.YES, True), - (NMMetered.NO, False), - (NMMetered.GUESS_YES, True), - (NMMetered.GUESS_NO, False), -]) +@pytest.mark.parametrize( + 'global_metered_status, expected', + [ + (NMMetered.UNKNOWN, False), + (NMMetered.YES, True), + (NMMetered.NO, False), + (NMMetered.GUESS_YES, True), + (NMMetered.GUESS_NO, False), + ], +) def test_is_network_metered(global_metered_status, expected, nm_monitor): nm_monitor._nm.get_global_metered_status.return_value = global_metered_status @@ -44,17 +44,22 @@ def test_is_network_metered(global_metered_status, expected, nm_monitor): assert result == expected -@pytest.mark.parametrize('connection_path, connection_type, type_settings, expected', [ - ('/org/freedesktop/NetworkManager/ActiveConnection/1', - '802-11-wireless', {'ssid': bytes([84, 69, 83, 84])}, 'TEST'), - ('/org/freedesktop/NetworkManager/ActiveConnection/2', - '802-11-ethernet', {}, None), -]) +@pytest.mark.parametrize( + 'connection_path, connection_type, type_settings, expected', + [ + ( + '/org/freedesktop/NetworkManager/ActiveConnection/1', + '802-11-wireless', + {'ssid': bytes([84, 69, 83, 84])}, + 'TEST', + ), + ('/org/freedesktop/NetworkManager/ActiveConnection/2', '802-11-ethernet', {}, None), + ], +) def test_get_current_wifi(connection_path, connection_type, type_settings, expected, nm_monitor): nm_monitor._nm.get_primary_connection_path.return_value = connection_path nm_monitor._nm.get_active_connection_info.return_value = ActiveConnectionInfo( - connection='/org/freedesktop/NetworkManager/Settings/12', - type=connection_type + connection='/org/freedesktop/NetworkManager/Settings/12', type=connection_type ) nm_monitor._nm.get_settings.side_effect = [{connection_type: type_settings}] @@ -78,10 +83,12 @@ def test_get_known_wifis(nm_monitor): result = nm_monitor.get_known_wifis() - assert result == [SystemWifiInfo( - ssid='TEST', - last_connected=datetime(2020, 8, 13, 7, 28, 56), - )] + assert result == [ + SystemWifiInfo( + ssid='TEST', + last_connected=datetime(2020, 8, 13, 7, 28, 56), + ) + ] def test_get_known_wifis_with_never_used_connection(nm_monitor): @@ -93,10 +100,12 @@ def test_get_known_wifis_with_never_used_connection(nm_monitor): result = nm_monitor.get_known_wifis() - assert result == [SystemWifiInfo( - ssid='TEST', - last_connected=None, - )] + assert result == [ + SystemWifiInfo( + ssid='TEST', + last_connected=None, + ) + ] def test_get_known_wifis_partial_failure(nm_monitor): @@ -114,10 +123,12 @@ def test_get_known_wifis_partial_failure(nm_monitor): result = nm_monitor.get_known_wifis() - assert result == [SystemWifiInfo( - ssid='TEST', - last_connected=None, - )] + assert result == [ + SystemWifiInfo( + ssid='TEST', + last_connected=None, + ) + ] def test_get_known_wifis_with_no_wifi_connections(nm_monitor): @@ -132,11 +143,14 @@ def test_get_known_wifis_with_no_wifi_connections(nm_monitor): assert result == [] -@pytest.mark.parametrize('ssid_bytes, expected', [ - ([84, 69, 83, 84], 'TEST'), - ([240, 159, 150, 150], '🖖'), - ([0, 1, 2, 10, 34, 39], '\\x00\\x01\\x02\\n"\''), -]) +@pytest.mark.parametrize( + 'ssid_bytes, expected', + [ + ([84, 69, 83, 84], 'TEST'), + ([240, 159, 150, 150], '🖖'), + ([0, 1, 2, 10, 34, 39], '\\x00\\x01\\x02\\n"\''), + ], +) def test_decode_ssid(ssid_bytes, expected): result = decode_ssid(ssid_bytes) assert result == expected diff --git a/tests/test_archives.py b/tests/test_archives.py index 52e19515f..9386202ef 100644 --- a/tests/test_archives.py +++ b/tests/test_archives.py @@ -76,8 +76,7 @@ def test_repo_compact(qapp, qtbot, mocker, borg_json_output): qtbot.mouseClick(tab.compactButton, QtCore.Qt.LeftButton) qtbot.waitUntil( - lambda: 'compaction freed about 56.00 kB repository space' in main.logText.text(), - **pytest._wait_defaults + lambda: 'compaction freed about 56.00 kB repository space' in main.logText.text(), **pytest._wait_defaults ) vorta.utils.borg_compat.version = '1.1.0' @@ -102,9 +101,7 @@ def psutil_disk_partitions(**kwargs): DiskPartitions = namedtuple('DiskPartitions', ['device', 'mountpoint']) return [DiskPartitions('borgfs', '/tmp')] - monkeypatch.setattr( - psutil, "disk_partitions", psutil_disk_partitions - ) + monkeypatch.setattr(psutil, "disk_partitions", psutil_disk_partitions) main = qapp.main_window tab = main.archiveTab @@ -116,9 +113,7 @@ def psutil_disk_partitions(**kwargs): popen_result = mocker.MagicMock(stdout=stdout, stderr=stderr, returncode=0) mocker.patch.object(vorta.borg.borg_job, 'Popen', return_value=popen_result) - monkeypatch.setattr( - vorta.views.archive_tab, "choose_file_dialog", choose_file_dialog - ) + monkeypatch.setattr(vorta.views.archive_tab, "choose_file_dialog", choose_file_dialog) tab.bmountarchive_clicked() qtbot.waitUntil(lambda: tab.mountErrors.text().startswith('Mounted'), **pytest._wait_defaults) diff --git a/tests/test_diff.py b/tests/test_diff.py index edd60ea20..a4e265d44 100644 --- a/tests/test_diff.py +++ b/tests/test_diff.py @@ -7,8 +7,9 @@ from vorta.views.diff_result import ChangeType, DiffData, DiffTree, FileType, parse_diff_json, parse_diff_lines -@pytest.mark.parametrize('json_mock_file,folder_root', [ - ('diff_archives', 'test'), ('diff_archives_dict_issue', 'Users')]) +@pytest.mark.parametrize( + 'json_mock_file,folder_root', [('diff_archives', 'test'), ('diff_archives_dict_issue', 'Users')] +) def test_archive_diff(qapp, qtbot, mocker, borg_json_output, json_mock_file, folder_root): main = qapp.main_window tab = main.archiveTab @@ -27,6 +28,7 @@ def check(feature_name): if feature_name == 'DIFF_JSON_LINES': return False return vorta.utils.BorgCompatibility.check(compat, feature_name) + mocker.patch.object(vorta.utils.borg_compat, 'check', check) selection_model: QItemSelectionModel = tab.archiveTable.selectionModel() @@ -52,42 +54,74 @@ def check(feature_name): @pytest.mark.parametrize( 'line, expected', [ - ('changed link some/changed/link', - ('some/changed/link', FileType.LINK, ChangeType.CHANGED_LINK, 0, 0, - None, None, None)), - (' +77.8 kB -77.8 kB some/changed/file', - ('some/changed/file', FileType.FILE, ChangeType.MODIFIED, 2 * 77800, - 0, None, None, - (77800, 77800))), - (' +77.8 kB -77.8 kB [-rw-rw-rw- -> -rw-r--r--] some/changed/file', - ('some/changed/file', FileType.FILE, ChangeType.MODIFIED, 2 * 77800, 0, - ('-rw-rw-rw-', '-rw-r--r--'), None, (77800, 77800))), - ('[-rw-rw-rw- -> -rw-r--r--] some/changed/file', - ('some/changed/file', FileType.FILE, ChangeType.MODE, 0, 0, - ('-rw-rw-rw-', '-rw-r--r--'), None, None)), - ('added directory some/changed/dir', - ('some/changed/dir', FileType.DIRECTORY, ChangeType.ADDED, 0, 0, None, - None, None)), - ('removed directory some/changed/dir', - ('some/changed/dir', FileType.DIRECTORY, ChangeType.REMOVED_DIR, 0, 0, - None, None, None)), - + ( + 'changed link some/changed/link', + ('some/changed/link', FileType.LINK, ChangeType.CHANGED_LINK, 0, 0, None, None, None), + ), + ( + ' +77.8 kB -77.8 kB some/changed/file', + ('some/changed/file', FileType.FILE, ChangeType.MODIFIED, 2 * 77800, 0, None, None, (77800, 77800)), + ), + ( + ' +77.8 kB -77.8 kB [-rw-rw-rw- -> -rw-r--r--] some/changed/file', + ( + 'some/changed/file', + FileType.FILE, + ChangeType.MODIFIED, + 2 * 77800, + 0, + ('-rw-rw-rw-', '-rw-r--r--'), + None, + (77800, 77800), + ), + ), + ( + '[-rw-rw-rw- -> -rw-r--r--] some/changed/file', + ('some/changed/file', FileType.FILE, ChangeType.MODE, 0, 0, ('-rw-rw-rw-', '-rw-r--r--'), None, None), + ), + ( + 'added directory some/changed/dir', + ('some/changed/dir', FileType.DIRECTORY, ChangeType.ADDED, 0, 0, None, None, None), + ), + ( + 'removed directory some/changed/dir', + ('some/changed/dir', FileType.DIRECTORY, ChangeType.REMOVED_DIR, 0, 0, None, None, None), + ), # Example from https://github.com/borgbase/vorta/issues/521 - ('[user:user -> nfsnobody:nfsnobody] home/user/arrays/test.txt', - ('home/user/arrays/test.txt', FileType.FILE, ChangeType.OWNER, 0, 0, - None, ('user', 'user', 'nfsnobody', 'nfsnobody'), None)), - + ( + '[user:user -> nfsnobody:nfsnobody] home/user/arrays/test.txt', + ( + 'home/user/arrays/test.txt', + FileType.FILE, + ChangeType.OWNER, + 0, + 0, + None, + ('user', 'user', 'nfsnobody', 'nfsnobody'), + None, + ), + ), # Very short owner change, to check stripping whitespace from file path - ('[a:a -> b:b] home/user/arrays/test.txt', - ('home/user/arrays/test.txt', FileType.FILE, ChangeType.OWNER, 0, 0, - None, ('a', 'a', 'b', 'b'), None)), - + ( + '[a:a -> b:b] home/user/arrays/test.txt', + ('home/user/arrays/test.txt', FileType.FILE, ChangeType.OWNER, 0, 0, None, ('a', 'a', 'b', 'b'), None), + ), # All file-related changes in one test - (' +77.8 kB -800 B [user:user -> nfsnobody:nfsnobody] [-rw-rw-rw- -> -rw-r--r--] home/user/arrays/test.txt', - ('home/user/arrays/test.txt', FileType.FILE, ChangeType.OWNER, - 77800 + 800, 77000, ('-rw-rw-rw-', '-rw-r--r--'), - ('user', 'user', 'nfsnobody', 'nfsnobody'), (77800, 800))), - ]) + ( + ' +77.8 kB -800 B [user:user -> nfsnobody:nfsnobody] [-rw-rw-rw- -> -rw-r--r--] home/user/arrays/test.txt', + ( + 'home/user/arrays/test.txt', + FileType.FILE, + ChangeType.OWNER, + 77800 + 800, + 77000, + ('-rw-rw-rw-', '-rw-r--r--'), + ('user', 'user', 'nfsnobody', 'nfsnobody'), + (77800, 800), + ), + ), + ], +) def test_archive_diff_parser(line, expected): model = DiffTree() model.setMode(model.DisplayMode.FLAT) @@ -103,113 +137,110 @@ def test_archive_diff_parser(line, expected): @pytest.mark.parametrize( 'line, expected', [ - ({ - 'path': 'some/changed/link', - 'changes': [{ - 'type': 'changed link' - }] - }, ('some/changed/link', FileType.LINK, ChangeType.CHANGED_LINK, 0, 0, - None, None, None)), - ({ - 'path': 'some/changed/file', - 'changes': [{ - 'type': 'modified', - 'added': 77800, - 'removed': 77800 - }] - }, ('some/changed/file', FileType.FILE, ChangeType.MODIFIED, 2 * 77800, - 0, None, None, (77800, 77800))), - ({ - 'path': - 'some/changed/file', - 'changes': [{ - 'type': 'modified', - 'added': 77800, - 'removed': 800 - }, { - 'type': 'mode', - 'old_mode': '-rw-rw-rw-', - 'new_mode': '-rw-r--r--' - }] - }, ('some/changed/file', FileType.FILE, ChangeType.MODIFIED, - 77800 + 800, 77000, ('-rw-rw-rw-', '-rw-r--r--'), None, - (77800, 800))), - ({ - 'path': - 'some/changed/file', - 'changes': [{ - 'type': 'mode', - 'old_mode': '-rw-rw-rw-', - 'new_mode': '-rw-r--r--' - }] - }, ('some/changed/file', FileType.FILE, ChangeType.MODE, 0, 0, - ('-rw-rw-rw-', '-rw-r--r--'), None, None)), - ({ - 'path': 'some/changed/dir', - 'changes': [{ - 'type': 'added directory' - }] - }, ('some/changed/dir', FileType.DIRECTORY, ChangeType.ADDED, 0, 0, - None, None, None)), - ({ - 'path': 'some/changed/dir', - 'changes': [{ - 'type': 'removed directory' - }] - }, ('some/changed/dir', FileType.DIRECTORY, ChangeType.REMOVED_DIR, 0, - 0, None, None, None)), - + ( + {'path': 'some/changed/link', 'changes': [{'type': 'changed link'}]}, + ('some/changed/link', FileType.LINK, ChangeType.CHANGED_LINK, 0, 0, None, None, None), + ), + ( + {'path': 'some/changed/file', 'changes': [{'type': 'modified', 'added': 77800, 'removed': 77800}]}, + ('some/changed/file', FileType.FILE, ChangeType.MODIFIED, 2 * 77800, 0, None, None, (77800, 77800)), + ), + ( + { + 'path': 'some/changed/file', + 'changes': [ + {'type': 'modified', 'added': 77800, 'removed': 800}, + {'type': 'mode', 'old_mode': '-rw-rw-rw-', 'new_mode': '-rw-r--r--'}, + ], + }, + ( + 'some/changed/file', + FileType.FILE, + ChangeType.MODIFIED, + 77800 + 800, + 77000, + ('-rw-rw-rw-', '-rw-r--r--'), + None, + (77800, 800), + ), + ), + ( + { + 'path': 'some/changed/file', + 'changes': [{'type': 'mode', 'old_mode': '-rw-rw-rw-', 'new_mode': '-rw-r--r--'}], + }, + ('some/changed/file', FileType.FILE, ChangeType.MODE, 0, 0, ('-rw-rw-rw-', '-rw-r--r--'), None, None), + ), + ( + {'path': 'some/changed/dir', 'changes': [{'type': 'added directory'}]}, + ('some/changed/dir', FileType.DIRECTORY, ChangeType.ADDED, 0, 0, None, None, None), + ), + ( + {'path': 'some/changed/dir', 'changes': [{'type': 'removed directory'}]}, + ('some/changed/dir', FileType.DIRECTORY, ChangeType.REMOVED_DIR, 0, 0, None, None, None), + ), # Example from https://github.com/borgbase/vorta/issues/521 - ({ - 'path': - 'home/user/arrays/test.txt', - 'changes': [{ - 'type': 'owner', - 'old_user': 'user', - 'new_user': 'nfsnobody', - 'old_group': 'user', - 'new_group': 'nfsnobody' - }] - }, ('home/user/arrays/test.txt', FileType.FILE, ChangeType.OWNER, 0, 0, - None, ('user', 'user', 'nfsnobody', 'nfsnobody'), None)), - + ( + { + 'path': 'home/user/arrays/test.txt', + 'changes': [ + { + 'type': 'owner', + 'old_user': 'user', + 'new_user': 'nfsnobody', + 'old_group': 'user', + 'new_group': 'nfsnobody', + } + ], + }, + ( + 'home/user/arrays/test.txt', + FileType.FILE, + ChangeType.OWNER, + 0, + 0, + None, + ('user', 'user', 'nfsnobody', 'nfsnobody'), + None, + ), + ), # Very short owner change, to check stripping whitespace from file path - ({ - 'path': - 'home/user/arrays/test.txt', - 'changes': [{ - 'type': 'owner', - 'old_user': 'a', - 'new_user': 'b', - 'old_group': 'a', - 'new_group': 'b' - }] - }, ('home/user/arrays/test.txt', FileType.FILE, ChangeType.OWNER, 0, 0, - None, ('a', 'a', 'b', 'b'), None)), - + ( + { + 'path': 'home/user/arrays/test.txt', + 'changes': [{'type': 'owner', 'old_user': 'a', 'new_user': 'b', 'old_group': 'a', 'new_group': 'b'}], + }, + ('home/user/arrays/test.txt', FileType.FILE, ChangeType.OWNER, 0, 0, None, ('a', 'a', 'b', 'b'), None), + ), # All file-related changes in one test - ({ - 'path': - 'home/user/arrays/test.txt', - 'changes': [{ - 'type': 'modified', - 'added': 77800, - 'removed': 77800 - }, { - 'type': 'mode', - 'old_mode': '-rw-rw-rw-', - 'new_mode': '-rw-r--r--' - }, { - 'type': 'owner', - 'old_user': 'user', - 'new_user': 'nfsnobody', - 'old_group': 'user', - 'new_group': 'nfsnobody' - }] - }, ('home/user/arrays/test.txt', FileType.FILE, ChangeType.OWNER, - 2 * 77800, 0, ('-rw-rw-rw-', '-rw-r--r--'), - ('user', 'user', 'nfsnobody', 'nfsnobody'), (77800, 77800))), - ]) + ( + { + 'path': 'home/user/arrays/test.txt', + 'changes': [ + {'type': 'modified', 'added': 77800, 'removed': 77800}, + {'type': 'mode', 'old_mode': '-rw-rw-rw-', 'new_mode': '-rw-r--r--'}, + { + 'type': 'owner', + 'old_user': 'user', + 'new_user': 'nfsnobody', + 'old_group': 'user', + 'new_group': 'nfsnobody', + }, + ], + }, + ( + 'home/user/arrays/test.txt', + FileType.FILE, + ChangeType.OWNER, + 2 * 77800, + 0, + ('-rw-rw-rw-', '-rw-r--r--'), + ('user', 'user', 'nfsnobody', 'nfsnobody'), + (77800, 77800), + ), + ), + ], +) def test_archive_diff_json_parser(line, expected): model = DiffTree() model.setMode(model.DisplayMode.FLAT) diff --git a/tests/test_import_export.py b/tests/test_import_export.py index 1029b9487..5e80d0ebf 100644 --- a/tests/test_import_export.py +++ b/tests/test_import_export.py @@ -52,9 +52,7 @@ def test_import_fail_not_json(qapp, rootdir, monkeypatch): def getOpenFileName(*args, **kwargs): return [BAD_FILE] - monkeypatch.setattr( - QFileDialog, "getOpenFileName", getOpenFileName - ) + monkeypatch.setattr(QFileDialog, "getOpenFileName", getOpenFileName) alert_message = None @@ -62,9 +60,7 @@ def critical(widget, title, message): nonlocal alert_message alert_message = message - monkeypatch.setattr( - QMessageBox, "critical", critical - ) + monkeypatch.setattr(QMessageBox, "critical", critical) main = qapp.main_window main.profile_import_action() @@ -79,9 +75,7 @@ def test_export_success(qapp, qtbot, tmpdir, monkeypatch): def getSaveFileName(*args, **kwargs): return [FILE_PATH] - monkeypatch.setattr( - QFileDialog, "getSaveFileName", getSaveFileName - ) + monkeypatch.setattr(QFileDialog, "getSaveFileName", getSaveFileName) main = qapp.main_window main.profile_export_action() @@ -99,9 +93,7 @@ def test_export_fail_unwritable(qapp, qtbot, tmpdir, monkeypatch): def getSaveFileName(*args, **kwargs): return [FILE_PATH] - monkeypatch.setattr( - QFileDialog, "getSaveFileName", getSaveFileName - ) + monkeypatch.setattr(QFileDialog, "getSaveFileName", getSaveFileName) alert_message = None @@ -109,9 +101,7 @@ def critical(widget, title, message): nonlocal alert_message alert_message = message - monkeypatch.setattr( - QMessageBox, "critical", critical - ) + monkeypatch.setattr(QMessageBox, "critical", critical) main = qapp.main_window main.profile_export_action() diff --git a/tests/test_misc.py b/tests/test_misc.py index de6ca6466..1f721f9f0 100644 --- a/tests/test_misc.py +++ b/tests/test_misc.py @@ -7,15 +7,14 @@ def test_autostart(qapp, qtbot): - ''' Check if file exists only on Linux, otherwise just check it doesn't crash ''' + '''Check if file exists only on Linux, otherwise just check it doesn't crash''' main = qapp.main_window main.tabWidget.setCurrentIndex(4) tab = main.miscTab def click_autostart(): for x in range(0, tab.checkboxLayout.count()): - item = tab.checkboxLayout.itemAt(x, - QFormLayout.ItemRole.FieldRole) + item = tab.checkboxLayout.itemAt(x, QFormLayout.ItemRole.FieldRole) if not item: continue checkbox = item.widget() @@ -29,14 +28,16 @@ def click_autostart(): click_autostart() if sys.platform == 'linux': - autostart_path = Path(os.environ.get( - "XDG_CONFIG_HOME", os.path.expanduser("~") + '/.config') + "/autostart") / "vorta.desktop" + autostart_path = ( + Path(os.environ.get("XDG_CONFIG_HOME", os.path.expanduser("~") + '/.config') + "/autostart") + / "vorta.desktop" + ) qtbot.waitUntil(lambda: autostart_path.exists(), **pytest._wait_defaults) with open(autostart_path) as desktop_file: desktop_file_text = desktop_file.read() - assert (desktop_file_text.startswith("[Desktop Entry]")) + assert desktop_file_text.startswith("[Desktop Entry]") click_autostart() if sys.platform == 'linux': diff --git a/tests/test_repo.py b/tests/test_repo.py index c306dd10c..e1da84a6e 100644 --- a/tests/test_repo.py +++ b/tests/test_repo.py @@ -57,8 +57,9 @@ def test_repo_unlink(qapp, qtbot): qtbot.mouseClick(main.createStartBtn, QtCore.Qt.LeftButton) # -1 is the repo id in this test - qtbot.waitUntil(lambda: main.progressText.text().startswith('Add a backup repository first.'), - **pytest._wait_defaults) + qtbot.waitUntil( + lambda: main.progressText.text().startswith('Add a backup repository first.'), **pytest._wait_defaults + ) assert main.progressText.text() == 'Add a backup repository first.' @@ -74,7 +75,7 @@ def test_password_autofill(qapp, qtbot): qtbot.keyClicks(add_repo_window.repoURL, test_repo_url) - assert (add_repo_window.passwordLineEdit.text() == password) + assert add_repo_window.passwordLineEdit.text() == password def test_repo_add_success(qapp, qtbot, mocker, borg_json_output): @@ -93,9 +94,9 @@ def test_repo_add_success(qapp, qtbot, mocker, borg_json_output): mocker.patch.object(vorta.borg.borg_job, 'Popen', return_value=popen_result) add_repo_window.run() - qtbot.waitUntil(lambda: EventLogModel.select() - .where(EventLogModel.returncode == 0).count() == 2, - **pytest._wait_defaults) + qtbot.waitUntil( + lambda: EventLogModel.select().where(EventLogModel.returncode == 0).count() == 2, **pytest._wait_defaults + ) assert RepoModel.get(id=2).url == test_repo_url diff --git a/tests/test_schedule.py b/tests/test_schedule.py index 25c9abb10..7b8969293 100644 --- a/tests/test_schedule.py +++ b/tests/test_schedule.py @@ -56,12 +56,14 @@ def test_schedule_tab(qapp: VortaApp, qtbot, clockmock): profile = BackupProfileModel.get(name=PROFILE_NAME) profile.schedule_make_up_missed = False profile.save() - event = EventLogModel(subcommand='create', - profile=profile.id, - returncode=0, - category='scheduled', - start_time=last_time, - end_time=last_time) + event = EventLogModel( + subcommand='create', + profile=profile.id, + returncode=0, + category='scheduled', + start_time=last_time, + end_time=last_time, + ) event.save() qapp.scheduler.set_timer_for_profile(profile.id) diff --git a/tests/test_scheduler.py b/tests/test_scheduler.py index 5952b1adb..12c6eea8d 100644 --- a/tests/test_scheduler.py +++ b/tests/test_scheduler.py @@ -25,15 +25,12 @@ def clockmock(monkeypatch): def prepare(func): """Decorator adding common preparation steps.""" + @wraps(func) def do(qapp, qtbot, mocker, borg_json_output): stdout, stderr = borg_json_output('create') - popen_result = mocker.MagicMock(stdout=stdout, - stderr=stderr, - returncode=0) - mocker.patch.object(vorta.borg.borg_job, - 'Popen', - return_value=popen_result) + popen_result = mocker.MagicMock(stdout=stdout, stderr=stderr, returncode=0) + mocker.patch.object(vorta.borg.borg_job, 'Popen', return_value=popen_result) return func(qapp, qtbot, mocker, borg_json_output) @@ -81,12 +78,9 @@ def test_simple_schedule(clockmock): profile.schedule_interval_count = 3 profile.save() - event = EventLogModel(subcommand='create', - profile=profile.id, - returncode=0, - category='scheduled', - start_time=time, - end_time=time) + event = EventLogModel( + subcommand='create', profile=profile.id, returncode=0, category='scheduled', start_time=time, end_time=time + ) event.save() # test set timer and next_job @@ -94,7 +88,8 @@ def test_simple_schedule(clockmock): assert len(scheduler.timers) == 1 assert scheduler.next_job() == '07:30 ({})'.format(PROFILE_NAME) assert scheduler.next_job_for_profile(profile.id) == ScheduleStatus( - ScheduleStatusType.SCHEDULED, dt(2020, 5, 6, 7, 30)) + ScheduleStatusType.SCHEDULED, dt(2020, 5, 6, 7, 30) + ) # test remove_job and next_job scheduler.remove_job(profile.id) @@ -109,21 +104,17 @@ def test_simple_schedule(clockmock): [ # simple (td(), td(hours=4, minutes=30), 'hours', 3, td(hours=3)), - # next day (td(), td(hours=4, minutes=30), 'hours', 20, td(hours=20)), - # passed by less than interval (td(hours=2), td(hours=4, minutes=30), 'hours', 3, td(hours=1)), - # passed by exactly interval (td(hours=3), td(hours=4, minutes=30), 'hours', 3, td(hours=3)), - # passed by multiple times the interval - (td(hours=7), td(hours=4, minutes=30), 'hours', 3, td(hours=2)) - ]) -def test_interval(clockmock, passed_time, scheduled, now, unit, count, - added_time): + (td(hours=7), td(hours=4, minutes=30), 'hours', 3, td(hours=2)), + ], +) +def test_interval(clockmock, passed_time, scheduled, now, unit, count, added_time): """Test scheduling in interval mode.""" # setup scheduler = VortaScheduler() @@ -138,12 +129,14 @@ def test_interval(clockmock, passed_time, scheduled, now, unit, count, profile.schedule_interval_count = count profile.save() - event = EventLogModel(subcommand='create', - profile=profile.id, - returncode=0, - category='scheduled' if scheduled else '', - start_time=time - passed_time, - end_time=time - passed_time) + event = EventLogModel( + subcommand='create', + profile=profile.id, + returncode=0, + category='scheduled' if scheduled else '', + start_time=time - passed_time, + end_time=time - passed_time, + ) event.save() # run test @@ -152,19 +145,16 @@ def test_interval(clockmock, passed_time, scheduled, now, unit, count, @mark.parametrize("scheduled", [True, False]) -@mark.parametrize( - "passed_time", - [td(hours=0), td(hours=5), - td(hours=14), td(hours=27)]) +@mark.parametrize("passed_time", [td(hours=0), td(hours=5), td(hours=14), td(hours=27)]) @mark.parametrize( "now, hour, minute", [ # same day (td(hours=4, minutes=30), 15, 00), - # next day (td(hours=4, minutes=30), 3, 30), - ]) + ], +) def test_fixed(clockmock, passed_time, scheduled, now, hour, minute): """Test scheduling in fixed mode.""" # setup @@ -181,12 +171,14 @@ def test_fixed(clockmock, passed_time, scheduled, now, hour, minute): profile.save() last_time = time - passed_time - event = EventLogModel(subcommand='create', - profile=profile.id, - returncode=0, - category='scheduled' if scheduled else '', - start_time=last_time, - end_time=last_time) + event = EventLogModel( + subcommand='create', + profile=profile.id, + returncode=0, + category='scheduled' if scheduled else '', + start_time=last_time, + end_time=last_time, + ) event.save() # run test diff --git a/tests/test_source.py b/tests/test_source.py index 55743ec5c..a4209576a 100644 --- a/tests/test_source.py +++ b/tests/test_source.py @@ -3,9 +3,7 @@ def test_add_folder(qapp, qtbot, mocker, monkeypatch, choose_file_dialog): - monkeypatch.setattr( - vorta.views.source_tab, "choose_file_dialog", choose_file_dialog - ) + monkeypatch.setattr(vorta.views.source_tab, "choose_file_dialog", choose_file_dialog) main = qapp.main_window main.tabWidget.setCurrentIndex(1) tab = main.sourceTab diff --git a/tests/test_treemodel.py b/tests/test_treemodel.py index bbe641237..40dffe789 100644 --- a/tests/test_treemodel.py +++ b/tests/test_treemodel.py @@ -142,8 +142,7 @@ def test_basic_setup(self): assert item is not None and item.data == 3 # test parent - assert (model.parent(model.indexPath( - PurePath('test/subtest'))) == model.indexPath(PurePath('test'))) + assert model.parent(model.indexPath(PurePath('test/subtest'))) == model.indexPath(PurePath('test')) # test index item1 = model.getItem(('test',))