More trouble with pty vs console behavior.
This commit is contained in:
@@ -70,11 +70,11 @@ def test_tui_input_line_append_is_typing_delta():
|
||||
manager, env = _build_screen_manager(
|
||||
"\n".join(
|
||||
[
|
||||
"<UserA> hi".ljust(20),
|
||||
"[Username] ".ljust(20),
|
||||
]
|
||||
),
|
||||
{"x": 11, "y": 1},
|
||||
"<UserA> hi".ljust(20),
|
||||
"[Username] ".ljust(20),
|
||||
]
|
||||
),
|
||||
{"x": 11, "y": 1},
|
||||
)
|
||||
env["runtime"]["InputManager"].get_last_input_time.return_value = time.time()
|
||||
|
||||
@@ -83,11 +83,11 @@ def test_tui_input_line_append_is_typing_delta():
|
||||
"bytes": b"",
|
||||
"lines": 2,
|
||||
"columns": 20,
|
||||
"textCursor": {"x": 12, "y": 1},
|
||||
"textCursor": {"x": 12, "y": 1},
|
||||
"screen": "pty",
|
||||
"text": "\n".join(
|
||||
[
|
||||
"<UserA> hi".ljust(20),
|
||||
"<UserA> hi".ljust(20),
|
||||
"[Username] l".ljust(20),
|
||||
]
|
||||
),
|
||||
@@ -98,3 +98,100 @@ def test_tui_input_line_append_is_typing_delta():
|
||||
|
||||
assert env["screen"]["new_delta"] == "l"
|
||||
assert env["screen"]["new_delta_is_typing"] is True
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
def test_tui_input_line_cursor_jump_keeps_only_typed_delta():
|
||||
manager, env = _build_screen_manager(
|
||||
"[Username] ".ljust(30),
|
||||
{"x": 0, "y": 0},
|
||||
)
|
||||
|
||||
manager.update(
|
||||
{
|
||||
"bytes": b"",
|
||||
"lines": 1,
|
||||
"columns": 30,
|
||||
"textCursor": {"x": 12, "y": 0},
|
||||
"screen": "pty",
|
||||
"text": "[Username] l".ljust(30),
|
||||
"attributes": [],
|
||||
},
|
||||
"onScreenUpdate",
|
||||
)
|
||||
|
||||
assert env["screen"]["new_delta"] == "l"
|
||||
assert env["screen"]["new_delta_is_typing"] is True
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
def test_tui_input_line_insert_with_channel_prefix_is_typing_delta():
|
||||
manager, env = _build_screen_manager(
|
||||
"\n".join(
|
||||
[
|
||||
"<UserA> hi".ljust(40),
|
||||
"[#channel] [Username] | 12:00".ljust(40),
|
||||
]
|
||||
),
|
||||
{"x": 22, "y": 1},
|
||||
)
|
||||
env["runtime"]["InputManager"].get_last_input_time.return_value = time.time()
|
||||
|
||||
manager.update(
|
||||
{
|
||||
"bytes": b"",
|
||||
"lines": 2,
|
||||
"columns": 40,
|
||||
"textCursor": {"x": 23, "y": 1},
|
||||
"screen": "pty",
|
||||
"text": "\n".join(
|
||||
[
|
||||
"<UserA> hi".ljust(40),
|
||||
"[#channel] [Username] l | 12:00".ljust(40),
|
||||
]
|
||||
),
|
||||
"attributes": [],
|
||||
},
|
||||
"onScreenUpdate",
|
||||
)
|
||||
|
||||
assert env["screen"]["new_delta"] == "l"
|
||||
assert env["screen"]["new_delta_is_typing"] is True
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
def test_tui_input_line_typing_is_filtered_from_mixed_repaint_delta():
|
||||
manager, env = _build_screen_manager(
|
||||
"\n".join(
|
||||
[
|
||||
"<UserA> hi".ljust(40),
|
||||
"[#channel] [Username] | 12:00".ljust(40),
|
||||
"status 12:00".ljust(40),
|
||||
]
|
||||
),
|
||||
{"x": 22, "y": 1},
|
||||
)
|
||||
env["runtime"]["InputManager"].get_last_input_time.return_value = time.time()
|
||||
|
||||
manager.update(
|
||||
{
|
||||
"bytes": b"",
|
||||
"lines": 3,
|
||||
"columns": 40,
|
||||
"textCursor": {"x": 23, "y": 1},
|
||||
"screen": "pty",
|
||||
"text": "\n".join(
|
||||
[
|
||||
"<UserA> hi".ljust(40),
|
||||
"[#channel] [Username] l | 12:00".ljust(40),
|
||||
"status 12:01".ljust(40),
|
||||
]
|
||||
),
|
||||
"attributes": [],
|
||||
},
|
||||
"onScreenUpdate",
|
||||
)
|
||||
|
||||
assert "Username" not in env["screen"]["new_delta"]
|
||||
assert "#channel" not in env["screen"]["new_delta"]
|
||||
assert env["screen"]["new_delta_is_typing"] is False
|
||||
|
||||
Reference in New Issue
Block a user