29 lines
894 B
Python
29 lines
894 B
Python
import pytest
|
|
from textual.app import App
|
|
from textual.widgets.text_area import Selection
|
|
from textual_textarea import TextEditor
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"language,expected_marker",
|
|
[
|
|
("python", "# "),
|
|
("sql", "-- "),
|
|
# ("mysql", "# "),
|
|
# ("c", "// "),
|
|
],
|
|
)
|
|
@pytest.mark.asyncio
|
|
async def test_comments(app: App, language: str, expected_marker: str) -> None:
|
|
async with app.run_test() as pilot:
|
|
ta = app.query_one("#ta", expect_type=TextEditor)
|
|
ta.language = language
|
|
original_text = "foo bar baz"
|
|
ta.text = original_text
|
|
ta.selection = Selection((0, 0), (0, 0))
|
|
|
|
await pilot.press("ctrl+underscore") # alias for ctrl+/
|
|
assert ta.text == f"{expected_marker}{original_text}"
|
|
|
|
await pilot.press("ctrl+underscore") # alias for ctrl+/
|
|
assert ta.text == f"{original_text}"
|