Skip to content

Commit 0d71246

Browse files
committed
Fixed build unit test
1 parent f230434 commit 0d71246

File tree

4 files changed

+27
-23
lines changed

4 files changed

+27
-23
lines changed

Diff for: tesseract_core/sdk/docker_cli_wrapper.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ def get(self, image: str) -> Image:
5151
# have id or name matching the image str
5252

5353
# Use getter func to make sure it's updated
54+
if not image:
55+
raise CLIDockerClient.Errors.DockerException(
56+
"Image name cannot be empty."
57+
)
5458
if ":" not in image:
5559
image = image + ":latest"
5660
images = self.list()
@@ -419,7 +423,7 @@ def _project_containers(
419423
A list of Docker container ids.
420424
"""
421425
# Calling self.get_projects will update containers and projects map
422-
if project_id in self.get_projects():
426+
if project_id in self.list():
423427
return self.project_container_map[project_id]
424428
try:
425429
# Run the docker ps command to list containers

Diff for: tesseract_core/sdk/engine.py

+7-5
Original file line numberDiff line numberDiff line change
@@ -98,12 +98,14 @@ def needs_docker(func: Callable) -> Callable:
9898
@functools.wraps(func)
9999
def wrapper_needs_docker(*args: Any, **kwargs: Any) -> None:
100100
try:
101+
print("AKOAKO needs docker")
101102
docker_client.info()
102-
except RuntimeError as ex:
103-
message = "Could not reach Docker daemon, check if it is running."
104-
logger.error(f"{message} Details: {ex}")
105-
raise RuntimeError(f"{message} See logs for details.") from None
106-
103+
except CLIDockerClient.Errors.APIError as ex:
104+
print("AKOAKO raise")
105+
raise UserError(
106+
"Could not reach Docker daemon, check if it is running."
107+
) from ex
108+
print("AKOAKO return")
107109
return func(*args, **kwargs)
108110

109111
return wrapper_needs_docker

Diff for: tests/conftest.py

+12-12
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,6 @@ def attrs(self):
230230

231231
def logs(self, stderr=False, stdout=False, **kwargs: Any):
232232
"""Mock logs method for Container."""
233-
print("AKOAKO logs")
234233
out = []
235234
if stdout:
236235
out.append(json.dumps(self.return_args).encode("utf-8"))
@@ -240,25 +239,26 @@ def logs(self, stderr=False, stdout=False, **kwargs: Any):
240239

241240
created_ids = set()
242241

243-
class MockedDocker(docker_cli_wrapper.CLIDockerClient):
244-
"""Mock DockerWrapper class."""
242+
class MockedDocker:
243+
"""Mock CLIDockerClient class."""
245244

246-
@staticmethod
247245
def info():
248246
"""Mock info method for DockerClient."""
247+
print("AKOAKO mocked info")
249248
pass
250249

251250
class images:
252-
"""Mock of DockerWrapper.images."""
251+
"""Mock of CLIDockerClient.images."""
253252

254253
@staticmethod
255254
def get(name: str) -> None:
256-
"""Mock of DockerWrapper.images.pull."""
255+
"""Mock of CLIDockerClient.Images.get."""
256+
print("AKOAKO GET FUNCTION")
257257
return MockedDocker.images.list()[0]
258258

259259
@staticmethod
260260
def list() -> list[docker_cli_wrapper.CLIDockerClient.Images.Image]:
261-
"""Mock of DockerWrapper.get_all_images."""
261+
"""Mock of CLIDockerClient.Images.list."""
262262
return [
263263
docker_cli_wrapper.CLIDockerClient.Images.Image(
264264
{
@@ -285,12 +285,12 @@ def buildx(*args, **kwargs) -> str:
285285
class containers:
286286
@staticmethod
287287
def get(name: str) -> MockedContainer:
288-
"""Mock of DockerWrapper.get_container."""
288+
"""Mock of CLIDockerClient.Containers.get."""
289289
return MockedDocker.containers.list()[0]
290290

291291
@staticmethod
292292
def list() -> list[MockedContainer]:
293-
"""Mock of DockerWrapper.get_all_containers."""
293+
"""Mock of CLIDockerClient.Containers.list."""
294294
return [MockedContainer({"TESSERACT_NAME": "vectoradd"})]
295295

296296
@staticmethod
@@ -305,19 +305,19 @@ def list() -> dict:
305305

306306
@staticmethod
307307
def up(compose_fpath: str, project_name: str) -> str:
308-
"""Mock of CLIDockerClient.docker_compose_up."""
308+
"""Mock of CLIDockerClient.Compose.up."""
309309
created_ids.add(project_name)
310310
return project_name
311311

312312
@staticmethod
313313
def down(project_id: str) -> bool:
314-
"""Mock of CLIDockerClient.docker_compose_down."""
314+
"""Mock of CLIDockerClient.Compose.down."""
315315
created_ids.remove(project_id)
316316
return True
317317

318318
@staticmethod
319319
def exists(project_id: str) -> bool:
320-
"""Mock of CLIDockerClient.docker_compose_project_exists."""
320+
"""Mock of CLIDockerClient.Compose.exists."""
321321
return project_id in created_ids
322322

323323
def mocked_subprocess_run(*args, **kwargs):

Diff for: tests/sdk_tests/test_engine.py

+3-5
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import random
88
import time
99
from pathlib import Path
10+
from unittest.mock import Mock
1011

1112
import pytest
1213
import yaml
@@ -238,7 +239,7 @@ def test_serve_tesseracts(mocked_docker):
238239
assert project_name_multi_tesseract
239240

240241

241-
def test_needs_docker(mocked_docker, mocker):
242+
def test_needs_docker(mocked_docker):
242243
@engine.needs_docker
243244
def run_something_with_docker():
244245
pass
@@ -247,10 +248,7 @@ def run_something_with_docker():
247248
run_something_with_docker()
248249

249250
# Sad case
250-
docker_info = mocker.patch(
251-
"tesseract_core.sdk.docker_cli_wrapper.CLIDockerClient.info"
252-
)
253-
docker_info.side_effect = UserError("No Docker")
251+
mocked_docker.info = Mock(side_effect=UserError())
254252

255253
with pytest.raises(UserError):
256254
run_something_with_docker()

0 commit comments

Comments
 (0)