11import shutil
22from pathlib import Path
3+ from typing import Any
34
45import luigi
56import pytest
7+ from luigi import Task
68
9+ from exasol_integration_test_docker_environment .lib .base .dependency_logger_base_task import DependencyLoggerBaseTask
710from exasol_integration_test_docker_environment .lib .base .docker_base_task import (
811 DockerBaseTask ,
912)
@@ -133,7 +136,7 @@ def _get_test_container_content(
133136 )
134137
135138
136- def run1 (working_directory : Path ):
139+ def run1 (working_directory : Path ) -> dict [ str , Any ] :
137140 task = generate_root_task (
138141 task_class = TestTask ,
139142 reuse = False ,
@@ -153,7 +156,7 @@ def run1(working_directory: Path):
153156 raise RuntimeError ("Error spawning test environment" ) from e
154157
155158
156- def run2 (working_directory : Path ):
159+ def run2 (working_directory : Path ) -> tuple [ DependencyLoggerBaseTask , dict [ str , Any ]] :
157160 task = generate_root_task (
158161 task_class = TestTask ,
159162 reuse = True ,
@@ -162,9 +165,8 @@ def run2(working_directory: Path):
162165 )
163166 try :
164167 success = luigi .build ([task ], workers = 1 , local_scheduler = True , log_level = "INFO" )
165-
166168 if success :
167- return task .get_result ()
169+ return task , task .get_result ()
168170 else :
169171 raise Exception ("Task failed" )
170172 except Exception as e :
@@ -176,21 +178,23 @@ def test_test_container_no_reuse_after_change(working_directory):
176178 p1 = run1 (working_directory )
177179 with _dockerfile (working_directory ).open ("a" ) as f :
178180 f .write ("\n #Test\n " )
179- p2 = run2 (working_directory )
181+ task , p2 = run2 (working_directory )
180182 assert "container_id" in p1
181183 assert "image_id" in p1
182184 assert "container_id" in p2
183185 assert "image_id" in p2
184186 print (p1 )
185187 print (p2 )
186188 assert p1 != p2
189+ task .cleanup (False ) #Cleanup docker container/image.
187190
188191
189192def test_test_container_reuse (working_directory ):
190193 p1 = run1 (working_directory )
191- p2 = run2 (working_directory )
194+ task , p2 = run2 (working_directory )
192195 assert "container_id" in p1
193196 assert "image_id" in p1
194197 print (p1 )
195198 print (p2 )
196199 assert p1 == p2
200+ task .cleanup (False )
0 commit comments