def test_repository_name_is_replaced(self, monkeypatch): task = ListImages(repository_name="original") api = MagicMock() monkeypatch.setattr("docker.APIClient", api) task.run(repository_name="test") assert api.return_value.images.call_args[1]["name"] == "test"
def test_repository_name_run_value_is_used(self, monkeypatch): task = ListImages() api = MagicMock() monkeypatch.setattr("prefect.tasks.docker.containers.docker.APIClient", api) task.run(repository_name="test") assert api.return_value.images.call_args[1]["name"] == "test"
def test_logs_twice_on_success(self, monkeypatch, caplog): repo_name = "test repo" task = ListImages(repository_name=repo_name) api = MagicMock() monkeypatch.setattr("docker.APIClient", api) self.assert_logs_twice_on_success(task, caplog)
def test_filled_initialization(self): task = ListImages(repository_name="test", all_layers=True, docker_server_url="test") assert task.repository_name == "test" assert task.all_layers == True assert task.docker_server_url == "test"
def test_returns_list_images_value(self, monkeypatch, caplog): repo_name = "test repo" task = ListImages(repository_name=repo_name) api = MagicMock() expected_docker_output = [ "A real image", "A second, equally real image" ] api.return_value.images = MagicMock( return_value=expected_docker_output) monkeypatch.setattr("docker.APIClient", api) with caplog.at_level(logging.DEBUG, logger=task.logger.name): result = task.run() assert result == expected_docker_output assert len(caplog.records) == 2
def test_logs_once_on_docker_api_failure(self, monkeypatch, caplog): repo_name = "test_repo" task = ListImages(repository_name=repo_name) api = MagicMock() images_mock = MagicMock( side_effect=docker.errors.DockerException("Docker specific error")) api.return_value.images = images_mock monkeypatch.setattr("docker.APIClient", api) self.assert_logs_once_on_docker_api_failure(task, caplog)
def test_empty_initialization(self): task = ListImages() assert not task.repository_name assert not task.all_layers assert not task.filters assert task.docker_server_url == "unix:///var/run/docker.sock"