def test_is_alt_screen(): console = Console(force_terminal=True) if console.legacy_windows: return assert not console.is_alt_screen with console.screen(): assert console.is_alt_screen assert not console.is_alt_screen
def test_screen(): console = Console(color_system=None, force_terminal=True, force_interactive=True) with console.capture() as capture: with console.screen(): console.print("Don't panic") expected = "\x1b[?1049h\x1b[H\x1b[?25lDon't panic\n\x1b[?1049l\x1b[?25h" result = capture.get() print(repr(result)) assert result == expected
def test_screen_update(): console = Console(width=20, height=4, color_system="truecolor", force_terminal=True) with console.capture() as capture: with console.screen() as screen: screen.update("foo", style="blue") screen.update("bar") screen.update() result = capture.get() print(repr(result)) expected = "\x1b[?1049h\x1b[H\x1b[?25l\x1b[34mfoo\x1b[0m\x1b[34m \x1b[0m\n\x1b[34m \x1b[0m\n\x1b[34m \x1b[0m\n\x1b[34m \x1b[0m\x1b[34mbar\x1b[0m\x1b[34m \x1b[0m\n\x1b[34m \x1b[0m\n\x1b[34m \x1b[0m\n\x1b[34m \x1b[0m\x1b[34mbar\x1b[0m\x1b[34m \x1b[0m\n\x1b[34m \x1b[0m\n\x1b[34m \x1b[0m\n\x1b[34m \x1b[0m\x1b[?1049l\x1b[?25h" assert result == expected
def test_update_screen(): console = Console(force_terminal=True, width=20, height=5) if console.legacy_windows: return with pytest.raises(errors.NoAltScreen): console.update_screen("foo") console.begin_capture() with console.screen(): console.update_screen("foo") console.update_screen("bar", region=Region(2, 3, 8, 4)) result = console.end_capture() print(repr(result)) expected = "\x1b[?1049h\x1b[H\x1b[?25l\x1b[1;1Hfoo \x1b[2;1H \x1b[3;1H \x1b[4;1H \x1b[5;1H \x1b[4;3Hbar \x1b[5;3H \x1b[6;3H \x1b[7;3H \x1b[?1049l\x1b[?25h" assert result == expected