@@ -681,21 +681,80 @@ def test_bootstrap_extension_project_if_destination_exists(mocker):
681681
682682
683683def 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 ):
684737 _mock_pypi_version (mocker )
685738 docker_compose = {
686739 '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+ },
689744 },
690745 }
691746 with tempfile .TemporaryDirectory () as tmp_data :
692747 project_dir = f'{ tmp_data } /project'
693748 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 :
695751 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 )
699758
700759
701760def test_bump_runner_docker_compose_not_found (mocker ):
0 commit comments