Move container-specific method from base class

Move the `is_runtime_available()` method from the base
`IsolationProvider` class, and into the `Dummy` provider class. This
method was originally defined in the base class, in order to be mocked
in our tests for the `Dummy` provider. There's no reason for the `Qubes`
class to have it though, so we can just move it to the `Dummy` provider.
This commit is contained in:
Alex Pyrgiotis 2024-12-02 18:12:16 +02:00
parent 60df4f7e35
commit 96e64deae7
No known key found for this signature in database
GPG key ID: B6C15EBA0357C9AA
4 changed files with 9 additions and 7 deletions

View file

@ -500,6 +500,7 @@ class WaitingWidgetContainer(WaitingWidget):
error: Optional[str] = None
try:
assert isinstance(self.dangerzone.isolation_provider, (Dummy, Container))
self.dangerzone.isolation_provider.is_runtime_available()
except NoContainerTechException as e:
log.error(str(e))

View file

@ -93,10 +93,6 @@ class IsolationProvider(ABC):
else:
self.proc_stderr = subprocess.DEVNULL
@staticmethod
def is_runtime_available() -> bool:
return True
@abstractmethod
def install(self) -> bool:
pass

View file

@ -39,6 +39,10 @@ class Dummy(IsolationProvider):
def install(self) -> bool:
return True
@staticmethod
def is_runtime_available() -> bool:
return True
def start_doc_to_pixels_proc(self, document: Document) -> subprocess.Popen:
cmd = [
sys.executable,

View file

@ -30,6 +30,7 @@ from dangerzone.isolation_provider.container import (
NoContainerTechException,
NotAvailableContainerTechException,
)
from dangerzone.isolation_provider.dummy import Dummy
from .test_updater import assert_report_equal, default_updater_settings
@ -510,9 +511,9 @@ def test_not_available_container_tech_exception(
) -> None:
# Setup
mock_app = mocker.MagicMock()
dummy = mocker.MagicMock()
dummy.is_runtime_available.side_effect = NotAvailableContainerTechException(
dummy = Dummy()
fn = mocker.patch.object(dummy, "is_runtime_available")
fn.side_effect = NotAvailableContainerTechException(
"podman", "podman image ls logs"
)