Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -318,7 +318,7 @@ dev = [
"sybil==6.1.0",
"tenacity==8.2.3",
"torch==2.3.0",
"types-docker==7.0.0.20240507", # This is very incomplete, so we still do not check ``test_docker.py`` with pyright.
"types-docker==7.0.0.20240507",
"types-Pillow==10.2.0.20240423",
"types-PyYAML==6.0.12.20240311",
"types-requests==2.31.0.20240406",
Expand Down Expand Up @@ -348,9 +348,6 @@ keep_full_version = true
[tool.pyright]
reportUnnecessaryTypeIgnoreComment = true
typeCheckingMode = "strict"
# We have too many errors because of
# docker-py not being typed.
ignore = ["tests/mock_vws/test_docker.py"]

[tool.deptry]
pep621_dev_dependency_groups = ["dev"]
Expand Down
31 changes: 15 additions & 16 deletions tests/mock_vws/test_docker.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import requests
from docker.errors import BuildError, NotFound
from docker.models.containers import Container
from docker.models.images import Image
from docker.models.networks import Network
from mock_vws.database import VuforiaDatabase
from tenacity import retry
Expand All @@ -25,8 +26,6 @@
import io
from collections.abc import Iterator

from docker.models.images import Image


# We do not cover this function because hitting particular branches depends on
# timing.
Expand Down Expand Up @@ -67,16 +66,16 @@ def fixture_custom_bridge_network() -> Iterator[Network]:
Yields:
A custom bridge network.
"""
client = docker.from_env()
client = docker.from_env() # pyright: ignore[reportUnknownMemberType]
try:
network = client.networks.create(
network = client.networks.create( # pyright: ignore[reportUnknownMemberType]
name="test-vws-bridge-" + uuid.uuid4().hex,
driver="bridge",
)
except NotFound:
# On Windows the "bridge" network driver is not available and we use
# the "nat" driver instead.
network = client.networks.create(
network = client.networks.create( # pyright: ignore[reportUnknownMemberType]
name="test-vws-bridge-" + uuid.uuid4().hex,
driver="nat",
)
Expand All @@ -89,10 +88,10 @@ def fixture_custom_bridge_network() -> Iterator[Network]:
network.reload()
images_to_remove: set[Image] = set()
for container in network.containers:
assert isinstance(container, Container)
network.disconnect(container=container)
container.stop()
container.remove(v=True, force=True)
network.disconnect(container=container) # pyright: ignore[reportUnknownMemberType]
container.stop() # pyright: ignore[reportUnknownMemberType]
container.remove(v=True, force=True) # pyright: ignore[reportUnknownMemberType]
assert isinstance(container.image, Image) # pyright: ignore[reportUnknownMemberType]
images_to_remove.add(container.image)

# This does leave behind untagged images.
Expand All @@ -112,7 +111,7 @@ def test_build_and_run(
application.
"""
repository_root = request.config.rootpath
client = docker.from_env()
client = docker.from_env() # pyright: ignore[reportUnknownMemberType]

dockerfile = repository_root / "src/mock_vws/_flask_server/Dockerfile"

Expand All @@ -122,7 +121,7 @@ def test_build_and_run(
vwq_tag = f"vws-mock-vwq:latest-{random}"

try:
target_manager_image, _ = client.images.build(
target_manager_image, _ = client.images.build( # pyright: ignore[reportUnknownMemberType]
path=str(repository_root),
dockerfile=str(dockerfile),
tag=target_manager_tag,
Expand All @@ -143,15 +142,15 @@ def test_build_and_run(
reason="We do not currently support using Windows containers."
)

vwq_image, _ = client.images.build(
vwq_image, _ = client.images.build( # pyright: ignore[reportUnknownMemberType]
path=str(repository_root),
dockerfile=str(dockerfile),
tag=vwq_tag,
target="vwq",
rm=True,
)

vws_image, _ = client.images.build(
vws_image, _ = client.images.build( # pyright: ignore[reportUnknownMemberType]
path=str(repository_root),
dockerfile=str(dockerfile),
tag=vws_tag,
Expand All @@ -165,14 +164,14 @@ def test_build_and_run(
f"http://{target_manager_container_name}:5000"
)

target_manager_container = client.containers.run(
target_manager_container = client.containers.run( # pyright: ignore[reportUnknownMemberType, reportUnknownVariableType]
image=target_manager_image,
detach=True,
name=target_manager_container_name,
publish_all_ports=True,
network=custom_bridge_network.name,
)
vws_container = client.containers.run(
vws_container = client.containers.run( # pyright: ignore[reportUnknownMemberType, reportUnknownVariableType]
image=vws_image,
detach=True,
name="vws-mock-vws-" + random,
Expand All @@ -182,7 +181,7 @@ def test_build_and_run(
"TARGET_MANAGER_BASE_URL": target_manager_internal_base_url,
},
)
vwq_container = client.containers.run(
vwq_container = client.containers.run( # pyright: ignore[reportUnknownMemberType, reportUnknownVariableType]
image=vwq_image,
detach=True,
name="vws-mock-vwq-" + random,
Expand Down