@@ -688,6 +688,104 @@ def test_compare_image(self):
688
688
self .dw .dc .images .assert_called_once_with ()
689
689
self .assertTrue (return_data )
690
690
691
+ def test_compare_config_unchanged (self ):
692
+ self .dw = get_DockerWorker (FAKE_DATA ['params' ])
693
+ job = mock .MagicMock ()
694
+ self .dw .dc .exec_create .return_value = job
695
+ self .dw .dc .exec_start .return_value = 'fake output'
696
+ self .dw .dc .exec_inspect .return_value = {'ExitCode' : 0 }
697
+ return_data = self .dw .compare_config ()
698
+ self .dw .dc .exec_create .assert_called_once_with (
699
+ FAKE_DATA ['params' ]['name' ],
700
+ kd .COMPARE_CONFIG_CMD ,
701
+ user = 'root' )
702
+ self .dw .dc .exec_start .assert_called_once_with (job )
703
+ self .dw .dc .exec_inspect .assert_called_once_with (job )
704
+ self .assertFalse (return_data )
705
+
706
+ def test_compare_config_changed (self ):
707
+ self .dw = get_DockerWorker (FAKE_DATA ['params' ])
708
+ job = mock .MagicMock ()
709
+ self .dw .dc .exec_create .return_value = job
710
+ self .dw .dc .exec_start .return_value = 'fake output'
711
+ self .dw .dc .exec_inspect .return_value = {'ExitCode' : 1 }
712
+ return_data = self .dw .compare_config ()
713
+ self .dw .dc .exec_create .assert_called_once_with (
714
+ FAKE_DATA ['params' ]['name' ],
715
+ kd .COMPARE_CONFIG_CMD ,
716
+ user = 'root' )
717
+ self .dw .dc .exec_start .assert_called_once_with (job )
718
+ self .dw .dc .exec_inspect .assert_called_once_with (job )
719
+ self .assertTrue (return_data )
720
+
721
+ def test_compare_config_changed_container_exited (self ):
722
+ self .dw = get_DockerWorker (FAKE_DATA ['params' ])
723
+ job = mock .MagicMock ()
724
+ self .dw .dc .exec_create .return_value = job
725
+ self .dw .dc .exec_start .return_value = 'fake output'
726
+ self .dw .dc .exec_inspect .return_value = {'ExitCode' : 137 }
727
+ return_data = self .dw .compare_config ()
728
+ self .dw .dc .exec_create .assert_called_once_with (
729
+ FAKE_DATA ['params' ]['name' ],
730
+ kd .COMPARE_CONFIG_CMD ,
731
+ user = 'root' )
732
+ self .dw .dc .exec_start .assert_called_once_with (job )
733
+ self .dw .dc .exec_inspect .assert_called_once_with (job )
734
+ self .assertTrue (return_data )
735
+
736
+ def test_compare_config_changed_client_failure (self ):
737
+ self .dw = get_DockerWorker (FAKE_DATA ['params' ])
738
+ job = mock .MagicMock ()
739
+ self .dw .dc .exec_create .return_value = job
740
+ self .dw .dc .exec_start .return_value = 'fake output'
741
+ failure_response = mock .MagicMock ()
742
+ failure_response .status_code = 409 # any client error should do here
743
+ self .dw .dc .exec_inspect .side_effect = docker_error .APIError (
744
+ message = "foo" ,
745
+ response = failure_response ,
746
+ )
747
+ return_data = self .dw .compare_config ()
748
+ self .dw .dc .exec_create .assert_called_once_with (
749
+ FAKE_DATA ['params' ]['name' ],
750
+ kd .COMPARE_CONFIG_CMD ,
751
+ user = 'root' )
752
+ self .dw .dc .exec_start .assert_called_once_with (job )
753
+ self .dw .dc .exec_inspect .assert_called_once_with (job )
754
+ self .assertTrue (return_data )
755
+
756
+ def test_compare_config_error (self ):
757
+ self .dw = get_DockerWorker (FAKE_DATA ['params' ])
758
+ job = mock .MagicMock ()
759
+ self .dw .dc .exec_create .return_value = job
760
+ self .dw .dc .exec_start .return_value = 'fake output'
761
+ self .dw .dc .exec_inspect .return_value = {'ExitCode' : - 1 }
762
+ self .assertRaises (Exception , self .dw .compare_config ) # noqa: H202
763
+ self .dw .dc .exec_create .assert_called_once_with (
764
+ FAKE_DATA ['params' ]['name' ],
765
+ kd .COMPARE_CONFIG_CMD ,
766
+ user = 'root' )
767
+ self .dw .dc .exec_start .assert_called_once_with (job )
768
+ self .dw .dc .exec_inspect .assert_called_once_with (job )
769
+
770
+ def test_compare_config_error_server_failure (self ):
771
+ self .dw = get_DockerWorker (FAKE_DATA ['params' ])
772
+ job = mock .MagicMock ()
773
+ self .dw .dc .exec_create .return_value = job
774
+ self .dw .dc .exec_start .return_value = 'fake output'
775
+ failure_response = mock .MagicMock ()
776
+ failure_response .status_code = 500 # any server error should do here
777
+ self .dw .dc .exec_inspect .side_effect = docker_error .APIError (
778
+ message = "foo" ,
779
+ response = failure_response ,
780
+ )
781
+ self .assertRaises (docker_error .APIError , self .dw .compare_config )
782
+ self .dw .dc .exec_create .assert_called_once_with (
783
+ FAKE_DATA ['params' ]['name' ],
784
+ kd .COMPARE_CONFIG_CMD ,
785
+ user = 'root' )
786
+ self .dw .dc .exec_start .assert_called_once_with (job )
787
+ self .dw .dc .exec_inspect .assert_called_once_with (job )
788
+
691
789
def test_get_image_id_not_exists (self ):
692
790
self .dw = get_DockerWorker (
693
791
{'image' : 'myregistrydomain.com:5000/ubuntu:16.04' })
0 commit comments