Our `DiffResultDialog` and `ExtractDialog` show a context menu for items of the list/tree view. The collapse action in this menu only makes sense for the tree mode of the view. This commit therefore enables the option only for this view mode.
* src/vorta/views/extract_dialog.py
* src/vorta/views/diff_result.py
* tests/unit/test_diff.py : Add tests for the new behaviour.
* tests/unit/test_extract.py
Move existing tests into subfolder `tests/unit`. Write integration tests that actually run the installed borg executable. Those tests can be found in `tests/integration`. Those pytest fixtures that are the same for both kinds of tests remain in `tests/conftest.py`. The others can be found in `tests/integration/conftest.py` or `tests/unit/conftest.py`. This adds nox to the project and configures it to run the tests with different borg versions. This also updates the ci workflow to run the integration tests using nox.
* noxfile.py : Run pytest with a matrix of borg versions OR a specific borg version
* Makefile : Run using nox. Add phonies `test-unit` and `test-integration`.
* tests/conftest.py : Move some fixtures/functions to `tests/unit/conftest.py`.
* tests/test_*.py --> tests/unit/ : Move unittests and assets into subfolder
* tests/integration/ : Write integration tests.
* requirements.d/dev.txt: Add `nox` and `pkgconfig`. The latter is needed for installing new borg versions.
* .github/actions/setup/action.yml : Update to install pre-commit and nox when needed. The action now no longer installs Vorta.
* .github/actions/install-dependencies/action.yml : Install system deps of borg with this new composite action.
* .github/workflows/test.yml : Rename `test` ci to `test-unit` and update it for the new test setup.
Implement `test-integration` ci.
Signed-off-by: Chirag Aggarwal <thechiragaggarwal@gmail.com>