class DockerEngineTest(unittest.TestCase): def setUp(self): """ Per-test setup method. """ self.engine = DockerEngine() def test_uses_host_networking(self): # Mock inspect. inspect_result = {"HostConfig": {"NetworkMode": "host"}} self.engine._docker_inspect = MagicMock(spec=self.engine._docker_inspect) self.engine._docker_inspect.return_value = inspect_result container_id = "12345" # Call result = self.engine.uses_host_networking(container_id) # Assert assert_true(result) @patch("calico_cni.container_engines.Client", autospec=True) def test__docker_inspect(self, m_client): # Mock container_id = "12345" info = "some info" m_client().inspect_container.return_value = info # Call result = self.engine._docker_inspect(container_id) # Assert assert_equal(result, info) @patch("calico_cni.container_engines.Client", autospec=True) def test__docker_inspect_error(self, m_client): # Mock container_id = "12345" response = MagicMock() response.status_code = 300 explanation = "explanation" msg = "message" m_client().inspect_container.side_effect = APIError(msg, response, explanation) # Call assert_raises(KeyError, self.engine._docker_inspect, container_id) @patch("calico_cni.container_engines.Client", autospec=True) def test__docker_inspect_error_not_found(self, m_client): # Mock container_id = "12345" response = MagicMock() response.status_code = 404 explanation = "explanation" m_client().inspect_container.side_effect = APIError(1, response, explanation) # Call assert_raises(KeyError, self.engine._docker_inspect, container_id) def test_get_container_engine_docker(self): eng = get_container_engine(True) assert_true(isinstance(eng, DockerEngine))