tests: Improve test for top-level conversion errors

This commit is contained in:
Alex Pyrgiotis 2024-10-08 19:03:24 +03:00
parent 328ddbe5be
commit 1302a1fcbf
No known key found for this signature in database
GPG key ID: B6C15EBA0357C9AA

View file

@ -10,16 +10,15 @@ import tempfile
import traceback import traceback
from pathlib import Path from pathlib import Path
from typing import Optional, Sequence from typing import Optional, Sequence
from unittest import mock
import pytest import pytest
from click.testing import CliRunner, Result from click.testing import CliRunner, Result
from pytest_mock import MockerFixture
from strip_ansi import strip_ansi from strip_ansi import strip_ansi
from dangerzone.cli import cli_main, display_banner from dangerzone.cli import cli_main, display_banner
from dangerzone.document import ARCHIVE_SUBDIR, SAFE_EXTENSION from dangerzone.document import ARCHIVE_SUBDIR, SAFE_EXTENSION
from dangerzone.isolation_provider.qubes import is_qubes_native_conversion from dangerzone.isolation_provider.qubes import is_qubes_native_conversion
from dangerzone.util import get_resource_path
from .conftest import for_each_doc, for_each_external_doc from .conftest import for_each_doc, for_each_external_doc
@ -211,17 +210,20 @@ class TestCliConversion(TestCliBasic):
result.assert_success() result.assert_success()
### Test method for swallowed exception ### Test method for swallowed exception
def test_output_filename_same_file_dummy_fails(self) -> None: def test_output_filename_pokemon_handler(
resource_path = get_resource_path("dummy_document.pdf") self,
# Using the same filename for both input and output should fail. sample_pdf: str,
result = self.run_cli( mocker: MockerFixture,
[ ) -> None:
resource_path, """Ensure that we catch top-level errors."""
"--output-filename", mock_conv = mocker.patch(
resource_path, "dangerzone.isolation_provider.base.IsolationProvider.convert"
"--unsafe-dummy-conversion",
]
) )
mock_conv.side_effect = Exception("It happens")
result = self.run_cli([sample_pdf])
# FIXME: The following does not work, because the log is somehow not captured by
# Click's CliRunner.
# result.assert_failure(message="It happens")
result.assert_failure() result.assert_failure()
def test_output_filename_new_dir(self, sample_pdf: str) -> None: def test_output_filename_new_dir(self, sample_pdf: str) -> None: