mirror of
https://github.com/freedomofpress/dangerzone.git
synced 2025-05-06 13:31:50 +02:00
Merge 41a6c59634
into 60df4f7e35
This commit is contained in:
commit
0ccb7580be
11 changed files with 88 additions and 149 deletions
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
|
@ -38,7 +38,7 @@ jobs:
|
||||||
apt-get install -y git make python3 python3-poetry --no-install-recommends
|
apt-get install -y git make python3 python3-poetry --no-install-recommends
|
||||||
poetry install --only lint,test
|
poetry install --only lint,test
|
||||||
- name: Run linters to enforce code style
|
- name: Run linters to enforce code style
|
||||||
run: poetry run make lint
|
run: poetry run make check
|
||||||
- name: Check that the QA script is up to date with the docs
|
- name: Check that the QA script is up to date with the docs
|
||||||
run: "./dev_scripts/qa.py --check-refs"
|
run: "./dev_scripts/qa.py --check-refs"
|
||||||
|
|
||||||
|
|
28
Makefile
28
Makefile
|
@ -2,21 +2,17 @@ LARGE_TEST_REPO_DIR:=tests/test_docs_large
|
||||||
GIT_DESC=$$(git describe)
|
GIT_DESC=$$(git describe)
|
||||||
JUNIT_FLAGS := --capture=sys -o junit_logging=all
|
JUNIT_FLAGS := --capture=sys -o junit_logging=all
|
||||||
|
|
||||||
.PHONY: lint-black
|
lint-ruff: ## check the python source code with various linter rules through ruff
|
||||||
lint-black: ## check python source code formatting issues, with black
|
ruff check
|
||||||
black --check --diff ./
|
|
||||||
|
|
||||||
.PHONY: lint-black-apply
|
lint-ruff-apply: ## apply all fixes made by ruff to the source code
|
||||||
lint-black-apply: ## apply black's source code formatting suggestions
|
ruff check --fix
|
||||||
black ./
|
|
||||||
|
|
||||||
.PHONY: lint-isort
|
format-ruff: ## Check the formatting of the python source code with ruff
|
||||||
lint-isort: ## check imports are organized, with isort
|
ruff format --check
|
||||||
isort --check --diff ./
|
|
||||||
|
|
||||||
.PHONY: lint-isort-apply
|
format-ruff-apply: ## apply all the formatting suggestions from ruff
|
||||||
lint-isort-apply: ## apply isort's imports organization suggestions
|
ruff format
|
||||||
isort ./
|
|
||||||
|
|
||||||
MYPY_ARGS := --ignore-missing-imports \
|
MYPY_ARGS := --ignore-missing-imports \
|
||||||
--disallow-incomplete-defs \
|
--disallow-incomplete-defs \
|
||||||
|
@ -34,11 +30,11 @@ mypy-tests:
|
||||||
|
|
||||||
mypy: mypy-host mypy-tests ## check type hints with mypy
|
mypy: mypy-host mypy-tests ## check type hints with mypy
|
||||||
|
|
||||||
.PHONY: lint
|
.PHONY: check
|
||||||
lint: lint-black lint-isort mypy ## check the code with various linters
|
check: lint-ruff format-ruff mypy ## check the code with ruff and mypy
|
||||||
|
|
||||||
.PHONY: lint-apply
|
.PHONY: fix
|
||||||
format: lint-black-apply lint-isort-apply ## apply all the linter's suggestions
|
fix: lint-ruff-apply format-ruff-apply ## apply all the suggestions from ruff
|
||||||
|
|
||||||
.PHONY: test
|
.PHONY: test
|
||||||
test:
|
test:
|
||||||
|
|
|
@ -6,7 +6,6 @@ import signal
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
from pathlib import Path
|
|
||||||
from typing import IO, Callable, Iterator, Optional
|
from typing import IO, Callable, Iterator, Optional
|
||||||
|
|
||||||
import fitz
|
import fitz
|
||||||
|
|
|
@ -71,7 +71,7 @@ class DangerzoneCore(object):
|
||||||
ocr_lang,
|
ocr_lang,
|
||||||
stdout_callback,
|
stdout_callback,
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception:
|
||||||
log.exception(
|
log.exception(
|
||||||
f"Unexpected error occurred while converting '{document}'"
|
f"Unexpected error occurred while converting '{document}'"
|
||||||
)
|
)
|
||||||
|
|
|
@ -8,7 +8,6 @@ import platform
|
||||||
import shutil
|
import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
import urllib.request
|
|
||||||
from datetime import date
|
from datetime import date
|
||||||
|
|
||||||
DEFAULT_GUI = True
|
DEFAULT_GUI = True
|
||||||
|
|
|
@ -95,11 +95,11 @@ def main():
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--version",
|
"--version",
|
||||||
required=True,
|
required=True,
|
||||||
help=f"look for assets with this Dangerzone version",
|
help="look for assets with this Dangerzone version",
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"dir",
|
"dir",
|
||||||
help=f"look for assets in this directory",
|
help="look for assets in this directory",
|
||||||
)
|
)
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
setup_logging()
|
setup_logging()
|
||||||
|
|
|
@ -105,7 +105,7 @@ def build_components_xml(root, data):
|
||||||
Guid=subdata["component_guid"],
|
Guid=subdata["component_guid"],
|
||||||
)
|
)
|
||||||
for filename in subdata["files"]:
|
for filename in subdata["files"]:
|
||||||
file_el = ET.SubElement(
|
ET.SubElement(
|
||||||
component_el, "File", Source=filename, Id="file_" + uuid.uuid4().hex
|
component_el, "File", Source=filename, Id="file_" + uuid.uuid4().hex
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
116
poetry.lock
generated
116
poetry.lock
generated
|
@ -44,52 +44,6 @@ files = [
|
||||||
{file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"},
|
{file = "appdirs-1.4.4.tar.gz", hash = "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "black"
|
|
||||||
version = "24.10.0"
|
|
||||||
description = "The uncompromising code formatter."
|
|
||||||
optional = false
|
|
||||||
python-versions = ">=3.9"
|
|
||||||
files = [
|
|
||||||
{file = "black-24.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6668650ea4b685440857138e5fe40cde4d652633b1bdffc62933d0db4ed9812"},
|
|
||||||
{file = "black-24.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1c536fcf674217e87b8cc3657b81809d3c085d7bf3ef262ead700da345bfa6ea"},
|
|
||||||
{file = "black-24.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:649fff99a20bd06c6f727d2a27f401331dc0cc861fb69cde910fe95b01b5928f"},
|
|
||||||
{file = "black-24.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:fe4d6476887de70546212c99ac9bd803d90b42fc4767f058a0baa895013fbb3e"},
|
|
||||||
{file = "black-24.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5a2221696a8224e335c28816a9d331a6c2ae15a2ee34ec857dcf3e45dbfa99ad"},
|
|
||||||
{file = "black-24.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f9da3333530dbcecc1be13e69c250ed8dfa67f43c4005fb537bb426e19200d50"},
|
|
||||||
{file = "black-24.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4007b1393d902b48b36958a216c20c4482f601569d19ed1df294a496eb366392"},
|
|
||||||
{file = "black-24.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:394d4ddc64782e51153eadcaaca95144ac4c35e27ef9b0a42e121ae7e57a9175"},
|
|
||||||
{file = "black-24.10.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b5e39e0fae001df40f95bd8cc36b9165c5e2ea88900167bddf258bacef9bbdc3"},
|
|
||||||
{file = "black-24.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d37d422772111794b26757c5b55a3eade028aa3fde43121ab7b673d050949d65"},
|
|
||||||
{file = "black-24.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14b3502784f09ce2443830e3133dacf2c0110d45191ed470ecb04d0f5f6fcb0f"},
|
|
||||||
{file = "black-24.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:30d2c30dc5139211dda799758559d1b049f7f14c580c409d6ad925b74a4208a8"},
|
|
||||||
{file = "black-24.10.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1cbacacb19e922a1d75ef2b6ccaefcd6e93a2c05ede32f06a21386a04cedb981"},
|
|
||||||
{file = "black-24.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1f93102e0c5bb3907451063e08b9876dbeac810e7da5a8bfb7aeb5a9ef89066b"},
|
|
||||||
{file = "black-24.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ddacb691cdcdf77b96f549cf9591701d8db36b2f19519373d60d31746068dbf2"},
|
|
||||||
{file = "black-24.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:680359d932801c76d2e9c9068d05c6b107f2584b2a5b88831c83962eb9984c1b"},
|
|
||||||
{file = "black-24.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:17374989640fbca88b6a448129cd1745c5eb8d9547b464f281b251dd00155ccd"},
|
|
||||||
{file = "black-24.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:63f626344343083322233f175aaf372d326de8436f5928c042639a4afbbf1d3f"},
|
|
||||||
{file = "black-24.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfa1d0cb6200857f1923b602f978386a3a2758a65b52e0950299ea014be6800"},
|
|
||||||
{file = "black-24.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:2cd9c95431d94adc56600710f8813ee27eea544dd118d45896bb734e9d7a0dc7"},
|
|
||||||
{file = "black-24.10.0-py3-none-any.whl", hash = "sha256:3bb2b7a1f7b685f85b11fed1ef10f8a9148bceb49853e47a294a3dd963c1dd7d"},
|
|
||||||
{file = "black-24.10.0.tar.gz", hash = "sha256:846ea64c97afe3bc677b761787993be4991810ecc7a4a937816dd6bddedc4875"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.dependencies]
|
|
||||||
click = ">=8.0.0"
|
|
||||||
mypy-extensions = ">=0.4.3"
|
|
||||||
packaging = ">=22.0"
|
|
||||||
pathspec = ">=0.9.0"
|
|
||||||
platformdirs = ">=2"
|
|
||||||
tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""}
|
|
||||||
typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""}
|
|
||||||
|
|
||||||
[package.extras]
|
|
||||||
colorama = ["colorama (>=0.4.3)"]
|
|
||||||
d = ["aiohttp (>=3.10)"]
|
|
||||||
jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
|
|
||||||
uvloop = ["uvloop (>=0.15.2)"]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "certifi"
|
name = "certifi"
|
||||||
version = "2024.8.30"
|
version = "2024.8.30"
|
||||||
|
@ -531,20 +485,6 @@ files = [
|
||||||
{file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
|
{file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "isort"
|
|
||||||
version = "5.13.2"
|
|
||||||
description = "A Python utility / library to sort Python imports."
|
|
||||||
optional = false
|
|
||||||
python-versions = ">=3.8.0"
|
|
||||||
files = [
|
|
||||||
{file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"},
|
|
||||||
{file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.extras]
|
|
||||||
colors = ["colorama (>=0.4.6)"]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lief"
|
name = "lief"
|
||||||
version = "0.15.1"
|
version = "0.15.1"
|
||||||
|
@ -709,33 +649,6 @@ files = [
|
||||||
{file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"},
|
{file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "pathspec"
|
|
||||||
version = "0.12.1"
|
|
||||||
description = "Utility library for gitignore style pattern matching of file paths."
|
|
||||||
optional = false
|
|
||||||
python-versions = ">=3.8"
|
|
||||||
files = [
|
|
||||||
{file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"},
|
|
||||||
{file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "platformdirs"
|
|
||||||
version = "4.3.6"
|
|
||||||
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`."
|
|
||||||
optional = false
|
|
||||||
python-versions = ">=3.8"
|
|
||||||
files = [
|
|
||||||
{file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"},
|
|
||||||
{file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.extras]
|
|
||||||
docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"]
|
|
||||||
test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"]
|
|
||||||
type = ["mypy (>=1.11.2)"]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pluggy"
|
name = "pluggy"
|
||||||
version = "1.5.0"
|
version = "1.5.0"
|
||||||
|
@ -1037,6 +950,33 @@ urllib3 = ">=1.21.1,<3"
|
||||||
socks = ["PySocks (>=1.5.6,!=1.5.7)"]
|
socks = ["PySocks (>=1.5.6,!=1.5.7)"]
|
||||||
use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
|
use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ruff"
|
||||||
|
version = "0.8.0"
|
||||||
|
description = "An extremely fast Python linter and code formatter, written in Rust."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "ruff-0.8.0-py3-none-linux_armv6l.whl", hash = "sha256:fcb1bf2cc6706adae9d79c8d86478677e3bbd4ced796ccad106fd4776d395fea"},
|
||||||
|
{file = "ruff-0.8.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:295bb4c02d58ff2ef4378a1870c20af30723013f441c9d1637a008baaf928c8b"},
|
||||||
|
{file = "ruff-0.8.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:7b1f1c76b47c18fa92ee78b60d2d20d7e866c55ee603e7d19c1e991fad933a9a"},
|
||||||
|
{file = "ruff-0.8.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb0d4f250a7711b67ad513fde67e8870109e5ce590a801c3722580fe98c33a99"},
|
||||||
|
{file = "ruff-0.8.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0e55cce9aa93c5d0d4e3937e47b169035c7e91c8655b0974e61bb79cf398d49c"},
|
||||||
|
{file = "ruff-0.8.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3f4cd64916d8e732ce6b87f3f5296a8942d285bbbc161acee7fe561134af64f9"},
|
||||||
|
{file = "ruff-0.8.0-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:c5c1466be2a2ebdf7c5450dd5d980cc87c8ba6976fb82582fea18823da6fa362"},
|
||||||
|
{file = "ruff-0.8.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2dabfd05b96b7b8f2da00d53c514eea842bff83e41e1cceb08ae1966254a51df"},
|
||||||
|
{file = "ruff-0.8.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:facebdfe5a5af6b1588a1d26d170635ead6892d0e314477e80256ef4a8470cf3"},
|
||||||
|
{file = "ruff-0.8.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87a8e86bae0dbd749c815211ca11e3a7bd559b9710746c559ed63106d382bd9c"},
|
||||||
|
{file = "ruff-0.8.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:85e654f0ded7befe2d61eeaf3d3b1e4ef3894469cd664ffa85006c7720f1e4a2"},
|
||||||
|
{file = "ruff-0.8.0-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:83a55679c4cb449fa527b8497cadf54f076603cc36779b2170b24f704171ce70"},
|
||||||
|
{file = "ruff-0.8.0-py3-none-musllinux_1_2_i686.whl", hash = "sha256:812e2052121634cf13cd6fddf0c1871d0ead1aad40a1a258753c04c18bb71bbd"},
|
||||||
|
{file = "ruff-0.8.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:780d5d8523c04202184405e60c98d7595bdb498c3c6abba3b6d4cdf2ca2af426"},
|
||||||
|
{file = "ruff-0.8.0-py3-none-win32.whl", hash = "sha256:5fdb6efecc3eb60bba5819679466471fd7d13c53487df7248d6e27146e985468"},
|
||||||
|
{file = "ruff-0.8.0-py3-none-win_amd64.whl", hash = "sha256:582891c57b96228d146725975fbb942e1f30a0c4ba19722e692ca3eb25cc9b4f"},
|
||||||
|
{file = "ruff-0.8.0-py3-none-win_arm64.whl", hash = "sha256:ba93e6294e9a737cd726b74b09a6972e36bb511f9a102f1d9a7e1ce94dd206a6"},
|
||||||
|
{file = "ruff-0.8.0.tar.gz", hash = "sha256:a7ccfe6331bf8c8dad715753e157457faf7351c2b69f62f32c165c2dbcbacd44"},
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "setuptools"
|
name = "setuptools"
|
||||||
version = "75.5.0"
|
version = "75.5.0"
|
||||||
|
@ -1189,4 +1129,4 @@ type = ["pytest-mypy"]
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = ">=3.9,<3.13"
|
python-versions = ">=3.9,<3.13"
|
||||||
content-hash = "5d1ff28aa04c3a814280e55c0b2a307efe5ca953cd4cb281056c35fd2e53fdf0"
|
content-hash = "56e1ef68447c1e9d96c0ae369e43b3c7ac79a7ce424674fa78a886553cc5693d"
|
||||||
|
|
|
@ -37,9 +37,8 @@ pyinstaller = {version = "*", platform = "darwin"}
|
||||||
|
|
||||||
# Dependencies required for linting the code.
|
# Dependencies required for linting the code.
|
||||||
[tool.poetry.group.lint.dependencies]
|
[tool.poetry.group.lint.dependencies]
|
||||||
black = "*"
|
|
||||||
isort = "*"
|
|
||||||
mypy = "*"
|
mypy = "*"
|
||||||
|
ruff = "*"
|
||||||
types-PySide2 = "*"
|
types-PySide2 = "*"
|
||||||
types-Markdown = "*"
|
types-Markdown = "*"
|
||||||
types-requests = "*"
|
types-requests = "*"
|
||||||
|
@ -60,11 +59,11 @@ pymupdf = "1.24.11" # Last version to support python 3.8 (needed for Ubuntu Foca
|
||||||
[tool.poetry.group.dev.dependencies]
|
[tool.poetry.group.dev.dependencies]
|
||||||
httpx = "^0.27.2"
|
httpx = "^0.27.2"
|
||||||
|
|
||||||
[tool.isort]
|
[tool.ruff.lint]
|
||||||
profile = "black"
|
select = [
|
||||||
skip_gitignore = true
|
# isort
|
||||||
# This is necessary due to https://github.com/PyCQA/isort/issues/1835
|
"I",
|
||||||
follow_links = false
|
]
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = ["poetry-core>=1.2.0"]
|
requires = ["poetry-core>=1.2.0"]
|
||||||
|
|
|
@ -33,17 +33,19 @@ def test_order_mime_handers() -> None:
|
||||||
"LibreOffice",
|
"LibreOffice",
|
||||||
]
|
]
|
||||||
|
|
||||||
with mock.patch(
|
with (
|
||||||
"subprocess.check_output", return_value=b"libreoffice-draw.desktop"
|
mock.patch(
|
||||||
) as mock_default_mime_hander, mock.patch(
|
"subprocess.check_output", return_value=b"libreoffice-draw.desktop"
|
||||||
"os.listdir",
|
) as mock_default_mime_hander,
|
||||||
side_effect=[
|
mock.patch(
|
||||||
["org.gnome.Evince.desktop"],
|
"os.listdir",
|
||||||
["org.pwmt.zathura-pdf-mupdf.desktop"],
|
side_effect=[
|
||||||
["libreoffice-draw.desktop"],
|
["org.gnome.Evince.desktop"],
|
||||||
],
|
["org.pwmt.zathura-pdf-mupdf.desktop"],
|
||||||
) as mock_list, mock.patch(
|
["libreoffice-draw.desktop"],
|
||||||
"dangerzone.gui.logic.DesktopEntry", return_value=mock_desktop
|
],
|
||||||
|
) as mock_list,
|
||||||
|
mock.patch("dangerzone.gui.logic.DesktopEntry", return_value=mock_desktop),
|
||||||
):
|
):
|
||||||
dz = DangerzoneGui(mock_app, dummy)
|
dz = DangerzoneGui(mock_app, dummy)
|
||||||
|
|
||||||
|
@ -77,18 +79,20 @@ def test_mime_handers_succeeds_no_default_found() -> None:
|
||||||
"LibreOffice",
|
"LibreOffice",
|
||||||
]
|
]
|
||||||
|
|
||||||
with mock.patch(
|
with (
|
||||||
"subprocess.check_output",
|
mock.patch(
|
||||||
side_effect=subprocess.CalledProcessError(1, "Oh no, xdg-mime error!)"),
|
"subprocess.check_output",
|
||||||
) as mock_default_mime_hander, mock.patch(
|
side_effect=subprocess.CalledProcessError(1, "Oh no, xdg-mime error!)"),
|
||||||
"os.listdir",
|
) as mock_default_mime_hander,
|
||||||
side_effect=[
|
mock.patch(
|
||||||
["org.gnome.Evince.desktop"],
|
"os.listdir",
|
||||||
["org.pwmt.zathura-pdf-mupdf.desktop"],
|
side_effect=[
|
||||||
["libreoffice-draw.desktop"],
|
["org.gnome.Evince.desktop"],
|
||||||
],
|
["org.pwmt.zathura-pdf-mupdf.desktop"],
|
||||||
) as mock_list, mock.patch(
|
["libreoffice-draw.desktop"],
|
||||||
"dangerzone.gui.logic.DesktopEntry", return_value=mock_desktop
|
],
|
||||||
|
) as mock_list,
|
||||||
|
mock.patch("dangerzone.gui.logic.DesktopEntry", return_value=mock_desktop),
|
||||||
):
|
):
|
||||||
dz = DangerzoneGui(mock_app, dummy)
|
dz = DangerzoneGui(mock_app, dummy)
|
||||||
|
|
||||||
|
@ -109,13 +113,16 @@ def test_malformed_desktop_entry_is_catched() -> None:
|
||||||
mock_app = mock.MagicMock()
|
mock_app = mock.MagicMock()
|
||||||
dummy = mock.MagicMock()
|
dummy = mock.MagicMock()
|
||||||
|
|
||||||
with mock.patch("dangerzone.gui.logic.DesktopEntry") as mock_desktop, mock.patch(
|
with (
|
||||||
"os.listdir",
|
mock.patch("dangerzone.gui.logic.DesktopEntry") as mock_desktop,
|
||||||
side_effect=[
|
mock.patch(
|
||||||
["malformed.desktop", "another.desktop"],
|
"os.listdir",
|
||||||
[],
|
side_effect=[
|
||||||
[],
|
["malformed.desktop", "another.desktop"],
|
||||||
],
|
[],
|
||||||
|
[],
|
||||||
|
],
|
||||||
|
),
|
||||||
):
|
):
|
||||||
mock_desktop.side_effect = ParsingError("Oh noes!", "malformed.desktop")
|
mock_desktop.side_effect = ParsingError("Oh noes!", "malformed.desktop")
|
||||||
DangerzoneGui(mock_app, dummy)
|
DangerzoneGui(mock_app, dummy)
|
||||||
|
|
|
@ -7,7 +7,6 @@ from typing import List
|
||||||
|
|
||||||
from pytest import MonkeyPatch, fixture
|
from pytest import MonkeyPatch, fixture
|
||||||
from pytest_mock import MockerFixture
|
from pytest_mock import MockerFixture
|
||||||
from pytest_subprocess import FakeProcess
|
|
||||||
from pytestqt.qtbot import QtBot
|
from pytestqt.qtbot import QtBot
|
||||||
|
|
||||||
from dangerzone.document import Document
|
from dangerzone.document import Document
|
||||||
|
|
Loading…
Reference in a new issue