1313import docker
1414import pytest
1515import requests
16- from docker .errors import BuildError
16+ from docker .errors import BuildError , NotFound
17+ from docker .models .containers import Container
18+ from docker .models .networks import Network
1719from mock_vws .database import VuforiaDatabase
1820from vws import VWS , CloudRecoService
1921
2022if TYPE_CHECKING :
2123 import io
2224 from collections .abc import Iterator
2325
24- from docker .models .networks import Network
25-
2626
2727# We do not cover this function because hitting particular branches depends on
2828# timing.
@@ -72,13 +72,15 @@ def fixture_custom_bridge_network() -> Iterator[Network]:
7272 name = "test-vws-bridge-" + uuid .uuid4 ().hex ,
7373 driver = "bridge" ,
7474 )
75- except docker . errors . NotFound :
75+ except NotFound :
7676 # On Windows the "bridge" network driver is not available and we use
7777 # the "nat" driver instead.
7878 network = client .networks .create (
7979 name = "test-vws-bridge-" + uuid .uuid4 ().hex ,
8080 driver = "nat" ,
8181 )
82+
83+ assert isinstance (network , Network )
8284 try :
8385 yield network
8486 finally :
@@ -115,7 +117,7 @@ def test_build_and_run(
115117 vwq_tag = f"vws-mock-vwq:latest-{ random } "
116118
117119 try :
118- target_manager_image , _ = client .images .build (
120+ target_manager_build_result = client .images .build (
119121 path = str (repository_root ),
120122 dockerfile = str (target_manager_dockerfile ),
121123 tag = target_manager_tag ,
@@ -133,16 +135,23 @@ def test_build_and_run(
133135 reason = "We do not currently support using Windows containers."
134136 pytest .skip (reason )
135137
136- vws_image , _ = client .images .build (
138+ assert isinstance (target_manager_build_result , tuple )
139+ target_manager_image , _ = target_manager_build_result
140+
141+ vws_build_result = client .images .build (
137142 path = str (repository_root ),
138143 dockerfile = str (vws_dockerfile ),
139144 tag = vws_tag ,
140145 )
141- vwq_image , _ = client .images .build (
146+ assert isinstance (vws_build_result , tuple )
147+ vws_image , _ = vws_build_result
148+ vwq_build_result = client .images .build (
142149 path = str (repository_root ),
143150 dockerfile = str (vwq_dockerfile ),
144151 tag = vwq_tag ,
145152 )
153+ assert isinstance (vwq_build_result , tuple )
154+ vwq_image , _ = vwq_build_result
146155
147156 database = VuforiaDatabase ()
148157 target_manager_container_name = "vws-mock-target-manager-" + random
@@ -178,9 +187,16 @@ def test_build_and_run(
178187 },
179188 )
180189
190+ assert isinstance (target_manager_container , Container )
191+ assert isinstance (vws_container , Container )
192+ assert isinstance (vwq_container , Container )
181193 for container in (target_manager_container , vws_container , vwq_container ):
182194 container .reload ()
183195
196+ assert isinstance (target_manager_container .attrs , dict )
197+ target_manager_port_attrs = target_manager_container .attrs [
198+ "NetworkSettings"
199+ ]["Ports" ]
184200 target_manager_port_attrs = target_manager_container .attrs [
185201 "NetworkSettings"
186202 ]["Ports" ]
@@ -189,10 +205,12 @@ def test_build_and_run(
189205 "HostPort"
190206 ]
191207
208+ assert isinstance (vws_container .attrs , dict )
192209 vws_port_attrs = vws_container .attrs ["NetworkSettings" ]["Ports" ]
193210 vws_host_ip = vws_port_attrs ["5000/tcp" ][0 ]["HostIp" ]
194211 vws_host_port = vws_port_attrs ["5000/tcp" ][0 ]["HostPort" ]
195212
213+ assert isinstance (vwq_container .attrs , dict )
196214 vwq_port_attrs = vwq_container .attrs ["NetworkSettings" ]["Ports" ]
197215 vwq_host_ip = vwq_port_attrs ["5000/tcp" ][0 ]["HostIp" ]
198216 vwq_host_port = vwq_port_attrs ["5000/tcp" ][0 ]["HostPort" ]
0 commit comments