@@ -32,6 +32,7 @@ def test_build_image(capsys, mock_docker_build):
3232 m_run .assert_called_once_with (
3333 ["docker" , "image" , "build" , "--no-cache" , f"-t={ tag } " , "-" ],
3434 input = b"xyz" ,
35+ check = True ,
3536 )
3637
3738 out , _ = capsys .readouterr ()
@@ -48,8 +49,33 @@ def test_build_image_no_tag(capsys, mock_docker_build):
4849 m_run .assert_called_once_with (
4950 ["docker" , "image" , "build" , "--no-cache" , "-" ],
5051 input = b"xyz" ,
52+ check = True ,
5153 )
5254
5355 out , _ = capsys .readouterr ()
5456 assert f"Successfully built { image } " in out
5557 assert "Image is not suitable for deploying/pushing" in out
58+
59+
60+ def test_build_image_error (capsys , mock_docker_build ):
61+ m_stream , m_run = mock_docker_build
62+
63+ def mock_run (* popenargs , check = False , ** kwargs ):
64+ if check :
65+ raise docker .subprocess .CalledProcessError (1 , popenargs )
66+ return 1
67+
68+ m_run .side_effect = mock_run
69+ image = "hello-world"
70+
71+ with pytest .raises (Exception ):
72+ docker .build_image (image , None )
73+ m_stream .assert_called_once ()
74+ m_run .assert_called_once_with (
75+ ["docker" , "image" , "build" , "--no-cache" , "-" ],
76+ input = b"xyz" ,
77+ check = True ,
78+ )
79+
80+ out , _ = capsys .readouterr ()
81+ assert f"Successfully built { image } " not in out
0 commit comments