Skip to content

Commit

Permalink
FIXUP: Make tests work after 'podman load -i'
Browse files Browse the repository at this point in the history
  • Loading branch information
apyrgio committed Mar 11, 2025
1 parent 49d4546 commit f9dfbe9
Showing 1 changed file with 16 additions and 10 deletions.
26 changes: 16 additions & 10 deletions tests/isolation_provider/test_container.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from dangerzone import container_utils, errors
from dangerzone.isolation_provider.container import Container
from dangerzone.isolation_provider.qubes import is_qubes_native_conversion
from dangerzone.util import get_resource_path

from .base import IsolationProviderTermination, IsolationProviderTest

Expand Down Expand Up @@ -47,7 +48,7 @@ def test_is_available_works(self, provider: Container, fp: FakeProcess) -> None:
provider.is_available()

def test_install_raise_if_image_cant_be_installed(
self, mocker: MockerFixture, provider: Container, fp: FakeProcess
self, provider: Container, fp: FakeProcess
) -> None:
"""When an image installation fails, an exception should be raised"""

Expand All @@ -68,19 +69,21 @@ def test_install_raise_if_image_cant_be_installed(
occurrences=2,
)

# Make podman load fail
mocker.patch("builtins.open", mocker.mock_open(read_data=""))

fp.register_subprocess(
[container_utils.get_runtime(), "load"],
[
container_utils.get_runtime(),
"load",
"-i",
get_resource_path("container.tar"),
],
returncode=-1,
)

with pytest.raises(errors.ImageInstallationException):
provider.install()

def test_install_raises_if_still_not_installed(
self, mocker: MockerFixture, provider: Container, fp: FakeProcess
self, provider: Container, fp: FakeProcess
) -> None:
"""When an image keep being not installed, it should return False"""
fp.register_subprocess(
Expand All @@ -105,10 +108,13 @@ def test_install_raises_if_still_not_installed(
occurrences=2,
)

# Patch open and podman load so that it works
mocker.patch("builtins.open", mocker.mock_open(read_data=""))
fp.register_subprocess(
[container_utils.get_runtime(), "load"],
[
container_utils.get_runtime(),
"load",
"-i",
get_resource_path("container.tar"),
],
)
with pytest.raises(errors.ImageNotPresentException):
provider.install()
Expand Down Expand Up @@ -195,7 +201,7 @@ def test_docker_desktop_version_failure_returns_true(
reason="Linux specific",
)
def test_linux_skips_desktop_version_check_returns_true(
self, mocker: MockerFixture, provider: Container
self, provider: Container
) -> None:
assert (True, "") == provider.check_docker_desktop_version()

Expand Down

0 comments on commit f9dfbe9

Please sign in to comment.