45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
import pytest
|
|
|
|
from fenrirscreenreader.screenDriver.ptyDriver import PTYConstants
|
|
from fenrirscreenreader.screenDriver.ptyDriver import Terminal
|
|
from fenrirscreenreader.screenDriver.ptyDriver import driver as PtyDriver
|
|
|
|
|
|
class DummyProcessInput:
|
|
def __init__(self):
|
|
self.data = []
|
|
|
|
def write(self, data):
|
|
self.data.append(data)
|
|
|
|
|
|
@pytest.mark.unit
|
|
def test_csi_sequences_with_intermediate_characters_do_not_render_final_byte():
|
|
terminal = Terminal(10, 3, DummyProcessInput())
|
|
|
|
terminal.feed(b"\x1b[2026$p\x1b[2048$pX")
|
|
screen = terminal.get_screen_content()
|
|
|
|
assert screen["text"].splitlines()[0] == "X "
|
|
assert "p" not in screen["text"]
|
|
|
|
|
|
@pytest.mark.unit
|
|
def test_optional_float_setting_uses_default_when_missing():
|
|
settings_manager = type(
|
|
"SettingsManager",
|
|
(),
|
|
{"get_setting": lambda self, section, setting: ""},
|
|
)()
|
|
pty_driver = PtyDriver()
|
|
|
|
assert (
|
|
pty_driver._get_optional_float_setting(
|
|
settings_manager,
|
|
"screen",
|
|
"ptyOutputTimeout",
|
|
PTYConstants.OUTPUT_READ_TIMEOUT,
|
|
)
|
|
== PTYConstants.OUTPUT_READ_TIMEOUT
|
|
)
|