diff --git a/tests/isolation_provider/test_qubes.py b/tests/isolation_provider/test_qubes.py index 42d23eb..d45db82 100644 --- a/tests/isolation_provider/test_qubes.py +++ b/tests/isolation_provider/test_qubes.py @@ -1,9 +1,13 @@ import pytest +from pytest_mock import MockerFixture -from dangerzone.isolation_provider.qubes import Qubes +from dangerzone.conversion import errors +from dangerzone.document import Document +from dangerzone.isolation_provider.base import IsolationProvider +from dangerzone.isolation_provider.qubes import Qubes, running_on_qubes # XXX Fixtures used in abstract Test class need to be imported regardless -from .. import pdf_11k_pages, sanitized_text, uncommon_text +from .. import pdf_11k_pages, sample_doc, sanitized_text, uncommon_text from .base import IsolationProviderTest @@ -12,5 +16,19 @@ def provider() -> Qubes: return Qubes() +@pytest.mark.skipif(not running_on_qubes(), reason="Not on a Qubes system") class TestQubes(IsolationProviderTest): - pass + def test_max_pages_client_side_enforcement( + self, + sample_doc: str, + provider: Qubes, + mocker: MockerFixture, + ) -> None: + provider.progress_callback = mocker.MagicMock() + mocker.patch( + "dangerzone.conversion.errors.MAX_PAGES", 1 + ) # sample_doc has 4 pages > 1 + doc = Document(sample_doc) + with pytest.raises(errors.MaxPagesException): + success = provider._convert(doc, ocr_lang=None) + assert not success