@@ -681,21 +681,80 @@ def test_bootstrap_extension_project_if_destination_exists(mocker):
681
681
682
682
683
683
def test_bump_runner_version (mocker , capsys ):
684
+ _mock_pypi_version (mocker )
685
+ with tempfile .TemporaryDirectory () as tmp_data :
686
+ project_dir = f'{ tmp_data } /project'
687
+ os .mkdir (project_dir )
688
+ docker_compose = {
689
+ 'services' : {
690
+ 'dev' : {'container_name' : 'ext_dev' , 'image' : 'cloudblueconnect/connect-extension-runner:0.5' },
691
+ 'test' : {'container_name' : 'ext_test' , 'image' : 'cloudblueconnect/connect-extension-runner:0.5' },
692
+ 'si' : {'container_name' : 'ext_si' , 'build' : {'dockerfile' : f'{ project_dir } /OtherDockerfile' }},
693
+ 'prod' : {'container_name' : 'ext_prod' , 'build' : {'context' : '.' }},
694
+ },
695
+ }
696
+ with open (f'{ project_dir } /docker-compose.yml' , 'w' ) as fp :
697
+ yaml .dump (docker_compose , fp )
698
+ with open (f'{ project_dir } /Dockerfile' , 'w' ) as fp :
699
+ fp .write ('FROM cloudblueconnect/connect-extension-runner:0.5' )
700
+ with open (f'{ project_dir } /OtherDockerfile' , 'w' ) as fp :
701
+ fp .write ('FROM cloudblueconnect/connect-extension-runner:0.5' )
702
+ bump_runner_extension_project (project_dir )
703
+ captured = capsys .readouterr ()
704
+ assert 'Runner version has been successfully updated to 1.0' in captured .out
705
+ assert f'{ os .path .join (project_dir , "docker-compose.yml" )} ' in captured .out
706
+ assert f'{ os .path .join (project_dir , "OtherDockerfile" )} ' in captured .out
707
+ assert f'{ os .path .join (project_dir , "Dockerfile" )} ' in captured .out
708
+
709
+
710
+ def test_bump_runner_version_no_update_required (mocker , capsys ):
711
+ _mock_pypi_version (mocker )
712
+ with tempfile .TemporaryDirectory () as tmp_data :
713
+ project_dir = f'{ tmp_data } /project'
714
+ os .mkdir (project_dir )
715
+ docker_compose = {
716
+ 'services' : {
717
+ 'dev' : {'container_name' : 'ext_dev' , 'image' : 'cloudblueconnect/connect-extension-runner:1.0' },
718
+ 'test' : {'container_name' : 'ext_test' , 'image' : 'cloudblueconnect/connect-extension-runner:1.0' },
719
+ 'si' : {'container_name' : 'ext_si' , 'build' : {'dockerfile' : f'{ project_dir } /OtherDockerfile' }},
720
+ 'prod' : {'container_name' : 'ext_prod' , 'build' : {}},
721
+ },
722
+ }
723
+ with open (f'{ project_dir } /docker-compose.yml' , 'w' ) as dc :
724
+ yaml .dump (docker_compose , dc )
725
+ with open (f'{ project_dir } /Dockerfile' , 'w' ) as df :
726
+ df .write ('FROM cloudblueconnect/connect-extension-runner:1.0' )
727
+ df .write ('\n ' )
728
+ with open (f'{ project_dir } /OtherDockerfile' , 'w' ) as df2 :
729
+ df2 .write ('FROM cloudblueconnect/connect-extension-runner:1.0' )
730
+ df2 .write ('\n ' )
731
+ bump_runner_extension_project (project_dir )
732
+ captured = capsys .readouterr ()
733
+ assert 'Nothing to update to 1.0' in captured .out
734
+
735
+
736
+ def test_bump_runner_version_invalid_dockerfile (mocker ):
684
737
_mock_pypi_version (mocker )
685
738
docker_compose = {
686
739
'services' : {
687
- 'dev' : {'container_name' : 'ext_dev' , 'image' : 'runner:0.5' },
688
- 'test' : {'container_name' : 'ext_test' , 'image' : 'runner:0.5' },
740
+ 'dev' : {
741
+ 'container_name' : 'ext_dev' ,
742
+ 'build' : {'dockerfile' : 'invalidfile' },
743
+ },
689
744
},
690
745
}
691
746
with tempfile .TemporaryDirectory () as tmp_data :
692
747
project_dir = f'{ tmp_data } /project'
693
748
os .mkdir (project_dir )
694
- with open (f'{ project_dir } /docker-compose.yml' , 'w' ) as fp :
749
+ dc = f'{ project_dir } /docker-compose.yml'
750
+ with open (dc , 'w' ) as fp :
695
751
yaml .dump (docker_compose , fp )
696
- bump_runner_extension_project (project_dir )
697
- captured = capsys .readouterr ()
698
- assert 'Runner version has been successfully updated' in captured .out
752
+ with pytest .raises (ClickException ) as exc :
753
+ bump_runner_extension_project (project_dir )
754
+ assert (
755
+ f'The expected dockerfile `{ project_dir } /invalidfile` specified in '
756
+ f'{ dc } is missing.'
757
+ ) in str (exc )
699
758
700
759
701
760
def test_bump_runner_docker_compose_not_found (mocker ):
0 commit comments