def test_two_messages(self, capfd: Any, printer: TTYPrinter) -> None: printer.print("message1") printer.print("message2") printer.close() out, err = capfd.readouterr() assert err == "" assert out == f"message1{linesep}message2{linesep}"
class DetailedDockerImageProgress(DockerImageProgress): def __init__(self) -> None: self._mapping: Dict[str, int] = {} self._printer = TTYPrinter() def push(self, data: ImageProgressPush) -> None: src = click.style(str(data.src), bold=True) dst = click.style(str(data.dst), bold=True) self._printer.print(f"Pushing image {src} => {dst}") def pull(self, data: ImageProgressPull) -> None: src = click.style(str(data.src), bold=True) dst = click.style(str(data.dst), bold=True) self._printer.print(f"Pulling image {src} => {dst}") def step(self, data: ImageProgressStep) -> None: if data.layer_id: if data.layer_id in self._mapping.keys(): lineno = self._mapping[data.layer_id] self._printer.print(data.message, lineno) else: self._mapping[data.layer_id] = self._printer.total_lines self._printer.print(data.message) else: self._printer.print(data.message) def save(self, data: ImageProgressSave) -> None: job = click.style(str(data.job), bold=True) dst = click.style(str(data.dst), bold=True) self._printer.print(f"Saving {job} -> {dst}") def commit_started(self, data: ImageCommitStarted) -> None: img = click.style(str(data.target_image), bold=True) self._printer.print( f"Creating image {img} image from the job container") def commit_finished(self, data: ImageCommitFinished) -> None: self._printer.print("Image created") def close(self) -> None: self._printer.close()
def test_message_lineno(self, printer: TTYPrinter, capfd: Any) -> None: assert printer.total_lines == 0 printer.print("message1") assert printer.total_lines == 1 printer.print("message1-replace", 0) assert printer.total_lines == 1 printer.print("message3", 2) assert printer.total_lines == 3 printer.print("message7", 6) assert printer.total_lines == 7 printer.print("message2", 1) assert printer.total_lines == 7 printer.close() out, err = capfd.readouterr() assert err == "" assert "message1" in out assert "message1-replace" in out assert "message3" in out assert "message7" in out assert "message2" in out CSI = "\033[" assert CSI in out assert f"{CSI}0A" not in out assert f"{CSI}0B" not in out
def test_one_message(self, capfd: Any, printer: TTYPrinter) -> None: printer.print("message") printer.close() out, err = capfd.readouterr() assert err == "" assert out == f"message{linesep}"
def test_no_messages(self, capfd: Any, printer: TTYPrinter) -> None: printer.close() out, err = capfd.readouterr() assert err == "" assert out == ""