class TestContainerManager(TestCase): """ Verifies functionality of ContainerManager by calling Docker APIs """ IMAGE = "busybox" # small sized Linux container @classmethod def setUpClass(cls): # Make sure we start with a clean slate docker_client = docker.from_env() TestContainerManager._remove_image(docker_client) def setUp(self): self.manager = ContainerManager() self.docker_client = docker.from_env() def tearDown(self): self._remove_image(self.docker_client) def test_pull_image(self): # Image should not exist self.assertFalse(self.manager.has_image(self.IMAGE)) # Pull the image self.manager.pull_image(self.IMAGE) # Image should be available now self.assertTrue(self.manager.has_image(self.IMAGE)) @classmethod def _remove_image(cls, docker_client): try: docker_client.images.remove(cls.IMAGE) except docker.errors.ImageNotFound: pass
class TestContainerManager_has_image(TestCase): def setUp(self): self.image_name = "image name" self.mock_docker_client = Mock() self.mock_docker_client.images = Mock() self.mock_docker_client.images.get = Mock() self.manager = ContainerManager(docker_client=self.mock_docker_client) def test_must_find_an_image(self): self.assertTrue(self.manager.has_image(self.image_name)) def test_must_not_find_image(self): self.mock_docker_client.images.get.side_effect = ImageNotFound("test") self.assertFalse(self.manager.has_image(self.image_name))
class TestContainerManager_has_image(TestCase): def setUp(self): self.image_name = "image name" self.mock_docker_client = Mock() self.mock_docker_client.images = Mock() self.mock_docker_client.images.get = Mock() self.manager = ContainerManager(docker_client=self.mock_docker_client) def test_must_find_an_image(self): self.assertTrue(self.manager.has_image(self.image_name)) def test_must_not_find_image(self): self.mock_docker_client.images.get.side_effect = ImageNotFound("test") self.assertFalse(self.manager.has_image(self.image_name))
def setUpClass(cls): manager = ContainerManager() if not manager.has_image(cls.IMAGE_NAME): manager.pull_image(cls.IMAGE_NAME)
def setUpClass(cls): manager = ContainerManager() if not manager.has_image(cls.IMAGE_NAME): manager.pull_image(cls.IMAGE_NAME)