@@ -85,11 +85,11 @@ def test_func_test_runner(self):
8585 deploy_calls = [
8686 mock .call (cwd + '/tests/bundles/bundle1.yaml' , 'newmodel' ,
8787 model_ctxt = {'default_alias' : 'newmodel' },
88- force = True , test_directory = None , trust = False ,
88+ wait = True , force = True , test_directory = None , trust = False ,
8989 ignore_hard_deploy_errors = False ),
9090 mock .call (cwd + '/tests/bundles/bundle2.yaml' , 'newmodel' ,
9191 model_ctxt = {'default_alias' : 'newmodel' },
92- force = True , test_directory = None , trust = False ,
92+ wait = True , force = True , test_directory = None , trust = False ,
9393 ignore_hard_deploy_errors = False )]
9494 configure_calls = [
9595 mock .call ('newmodel' , [
@@ -164,24 +164,24 @@ def test_func_test_runner_cmr(self):
164164 cwd = os .getcwd ()
165165 deploy_calls = [
166166 mock .call (cwd + '/tests/bundles/bundle1.yaml' , 'm1' ,
167- model_ctxt = {'default_alias' : 'm1' }, force = False ,
168- test_directory = None , trust = False ,
167+ model_ctxt = {'default_alias' : 'm1' }, wait = True ,
168+ force = False , test_directory = None , trust = False ,
169169 ignore_hard_deploy_errors = False ),
170170 mock .call (cwd + '/tests/bundles/bundle2.yaml' , 'm2' ,
171- model_ctxt = {'default_alias' : 'm2' }, force = False ,
172- test_directory = None , trust = False ,
171+ model_ctxt = {'default_alias' : 'm2' }, wait = True ,
172+ force = False , test_directory = None , trust = False ,
173173 ignore_hard_deploy_errors = False ),
174174 mock .call (
175175 cwd + '/tests/bundles/bundle5.yaml' ,
176176 'm3' ,
177177 model_ctxt = {'model_alias_5' : 'm3' , 'model_alias_6' : 'm4' },
178- force = False , test_directory = None , trust = False ,
178+ wait = True , force = False , test_directory = None , trust = False ,
179179 ignore_hard_deploy_errors = False ),
180180 mock .call (
181181 cwd + '/tests/bundles/bundle6.yaml' ,
182182 'm4' ,
183183 model_ctxt = {'model_alias_5' : 'm3' , 'model_alias_6' : 'm4' },
184- force = False , test_directory = None , trust = False ,
184+ wait = True , force = False , test_directory = None , trust = False ,
185185 ignore_hard_deploy_errors = False )]
186186 configure_calls = [
187187 mock .call ('m1' , [
@@ -256,12 +256,12 @@ def test_func_test_runner_with_before_script(self):
256256 mock .call ('newmodel' , 'default_alias' , test_directory = None )]
257257 deploy_calls = [
258258 mock .call (cwd + '/tests/bundles/bundle1.yaml' , 'newmodel' ,
259- model_ctxt = {'default_alias' : 'newmodel' }, force = False ,
260- test_directory = None , trust = False ,
259+ model_ctxt = {'default_alias' : 'newmodel' }, wait = True ,
260+ force = False , test_directory = None , trust = False ,
261261 ignore_hard_deploy_errors = False ),
262262 mock .call (cwd + '/tests/bundles/bundle2.yaml' , 'newmodel' ,
263- model_ctxt = {'default_alias' : 'newmodel' }, force = False ,
264- test_directory = None , trust = False ,
263+ model_ctxt = {'default_alias' : 'newmodel' }, wait = True ,
264+ force = False , test_directory = None , trust = False ,
265265 ignore_hard_deploy_errors = False )]
266266 before_deploy_calls = [
267267 mock .call ('newmodel' , [
@@ -319,7 +319,7 @@ def test_func_test_runner_smoke(self):
319319 deploy_calls = [
320320 mock .call (cwd + '/tests/bundles/bundle2.yaml' , 'newmodel' ,
321321 model_ctxt = {'default_alias' : 'newmodel' },
322- force = False ,
322+ wait = True , force = False ,
323323 test_directory = None , trust = False ,
324324 ignore_hard_deploy_errors = False )]
325325 self .deploy .assert_has_calls (deploy_calls )
@@ -352,12 +352,12 @@ def test_func_test_runner_dev(self):
352352 cwd = os .getcwd ()
353353 deploy_calls = [
354354 mock .call (cwd + '/tests/bundles/bundle3.yaml' , 'newmodel' ,
355- model_ctxt = {'default_alias' : 'newmodel' }, force = False ,
356- test_directory = None , trust = False ,
355+ model_ctxt = {'default_alias' : 'newmodel' }, wait = True ,
356+ force = False , test_directory = None , trust = False ,
357357 ignore_hard_deploy_errors = False ),
358358 mock .call (cwd + '/tests/bundles/bundle4.yaml' , 'newmodel' ,
359- model_ctxt = {'default_alias' : 'newmodel' }, force = False ,
360- test_directory = None , trust = False ,
359+ model_ctxt = {'default_alias' : 'newmodel' }, wait = True ,
360+ force = False , test_directory = None , trust = False ,
361361 ignore_hard_deploy_errors = False )]
362362 self .deploy .assert_has_calls (deploy_calls )
363363
@@ -392,7 +392,7 @@ def test_func_test_runner_specify_bundle(self):
392392 cwd + '/tests/bundles/maveric-filebeat.yaml' ,
393393 'newmodel' ,
394394 model_ctxt = {'default_alias' : 'newmodel' },
395- force = False ,
395+ wait = True , force = False ,
396396 test_directory = None , trust = False ,
397397 ignore_hard_deploy_errors = False )]
398398 self .deploy .assert_has_calls (deploy_calls )
@@ -429,7 +429,7 @@ def test_func_test_runner_specify_bundle_with_alias(self):
429429 cwd + '/tests/bundles/maveric-filebeat.yaml' ,
430430 'newmodel' ,
431431 model_ctxt = {'alias' : 'newmodel' },
432- force = False ,
432+ wait = True , force = False ,
433433 test_directory = None , trust = False ,
434434 ignore_hard_deploy_errors = False )]
435435 self .deploy .assert_has_calls (deploy_calls )
@@ -459,7 +459,7 @@ def test_func_test_runner_specify_bundle_with_implicit_alias(self):
459459 cwd + '/tests/bundles/maveric-filebeat.yaml' ,
460460 'newmodel' ,
461461 model_ctxt = {'alias' : 'newmodel' },
462- force = False ,
462+ wait = True , force = False ,
463463 test_directory = None , trust = False ,
464464 ignore_hard_deploy_errors = False )]
465465 self .deploy .assert_has_calls (deploy_calls )
@@ -498,15 +498,15 @@ def test_func_test_runner_cmr_specify_bundle_with_alias(self):
498498 'newmodel1' ,
499499 model_ctxt = {'alias' : 'newmodel1' ,
500500 'another_alias' : 'newmodel2' },
501- force = False ,
501+ wait = True , force = False ,
502502 test_directory = None , trust = False ,
503503 ignore_hard_deploy_errors = False ),
504504 mock .call (
505505 cwd + '/tests/bundles/maverick-things.yaml' ,
506506 'newmodel2' ,
507507 model_ctxt = {'alias' : 'newmodel1' ,
508508 'another_alias' : 'newmodel2' },
509- force = False ,
509+ wait = True , force = False ,
510510 test_directory = None , trust = False ,
511511 ignore_hard_deploy_errors = False )]
512512 self .deploy .assert_has_calls (deploy_calls )
@@ -604,3 +604,41 @@ def test_main_bundle_keep_model_ambiguous_case2(self):
604604
605605 def test_main_bundle_keep_model_ambiguous_case3 (self ):
606606 self .__keep_model_ambiguous (False , True , True )
607+
608+ def test_func_test_runner_no_wait_deploy (self ):
609+ self .patch_object (lc_func_test_runner .utils , 'get_charm_config' )
610+ self .patch_object (lc_func_test_runner .utils , 'generate_model_name' )
611+ self .patch_object (lc_func_test_runner .prepare , 'prepare' )
612+ self .patch_object (lc_func_test_runner .before_deploy , 'before_deploy' )
613+ self .patch_object (lc_func_test_runner .deploy , 'deploy' )
614+ self .patch_object (lc_func_test_runner .configure , 'configure' )
615+ self .patch_object (lc_func_test_runner .test , 'test' )
616+ self .patch_object (lc_func_test_runner .destroy , 'destroy' )
617+ self .patch_object (
618+ lc_func_test_runner .zaza .model ,
619+ 'block_until_all_units_idle' )
620+ self .generate_model_name .return_value = 'newmodel'
621+ self .get_charm_config .return_value = {
622+ 'charm_name' : 'mycharm' ,
623+ 'gate_bundles' : ['bundle1' , 'bundle2' ],
624+ 'tests' : [
625+ 'zaza.charm_tests.mycharm.tests.SmokeTest' ],
626+ 'tests_options' : {
627+ 'no_wait_deploy' : ['bundle1' ]
628+ }}
629+ lc_func_test_runner .func_test_runner ()
630+ cwd = os .getcwd ()
631+ deploy_calls = [
632+ mock .call (cwd + '/tests/bundles/bundle1.yaml' , 'newmodel' ,
633+ model_ctxt = {'default_alias' : 'newmodel' },
634+ wait = False , force = False , test_directory = None ,
635+ trust = False , ignore_hard_deploy_errors = False ),
636+ mock .call (cwd + '/tests/bundles/bundle2.yaml' , 'newmodel' ,
637+ model_ctxt = {'default_alias' : 'newmodel' },
638+ wait = True , force = False , test_directory = None ,
639+ trust = False , ignore_hard_deploy_errors = False )]
640+ self .deploy .assert_has_calls (deploy_calls )
641+ # block_until_all_units_idle should only be called for bundle2
642+ # (bundle1 has no_wait_deploy set)
643+ self .block_until_all_units_idle .assert_called_once_with (
644+ ignore_hard_errors = False , model_name = 'newmodel' )
0 commit comments