Adding upstream version 4.0.4.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
1f832614e9
commit
0832c185c0
48 changed files with 7595 additions and 0 deletions
112
tests/snapshots/test_styling.py
Normal file
112
tests/snapshots/test_styling.py
Normal file
|
@ -0,0 +1,112 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from textual.app import App, ComposeResult
|
||||
from textual.pilot import Pilot
|
||||
from textual.widgets import Input
|
||||
from textual_autocomplete import AutoComplete
|
||||
|
||||
|
||||
class StyledAutocomplete(App[None]):
|
||||
def compose(self) -> ComposeResult:
|
||||
input = Input(placeholder="Search...")
|
||||
input.cursor_blink = False
|
||||
yield input
|
||||
yield AutoComplete(target=input, candidates=["foo", "bar", "baz", "qux"])
|
||||
|
||||
|
||||
def test_foreground_color_and_text_style(snap_compare):
|
||||
"""Background color should not be impacted by the text foreground and style."""
|
||||
StyledAutocomplete.CSS = """
|
||||
AutoComplete {
|
||||
& .autocomplete--highlight-match {
|
||||
color: $text-accent;
|
||||
text-style: bold italic underline;
|
||||
}
|
||||
}
|
||||
"""
|
||||
|
||||
async def run_before(pilot: Pilot) -> None:
|
||||
await pilot.press(*"ba")
|
||||
|
||||
assert snap_compare(StyledAutocomplete(), run_before=run_before)
|
||||
|
||||
|
||||
def test_background_color_and_removed_style(snap_compare):
|
||||
StyledAutocomplete.CSS = """
|
||||
AutoComplete {
|
||||
& .autocomplete--highlight-match {
|
||||
color: $text-accent;
|
||||
background: $success-muted;
|
||||
text-style: not bold;
|
||||
}
|
||||
}
|
||||
"""
|
||||
|
||||
async def run_before(pilot: Pilot) -> None:
|
||||
await pilot.press(*"ba")
|
||||
|
||||
assert snap_compare(StyledAutocomplete(), run_before=run_before)
|
||||
|
||||
|
||||
def test_max_height_and_scrolling(snap_compare):
|
||||
"""We should be scrolled to qux, and the red scrollbar should reflect that."""
|
||||
StyledAutocomplete.CSS = """
|
||||
AutoComplete {
|
||||
& AutoCompleteList {
|
||||
scrollbar-color: red;
|
||||
max-height: 2;
|
||||
}
|
||||
}
|
||||
"""
|
||||
|
||||
async def run_before(pilot: Pilot) -> None:
|
||||
await pilot.press("down", "down", "down", "down")
|
||||
|
||||
assert snap_compare(StyledAutocomplete(), run_before=run_before)
|
||||
|
||||
|
||||
def test_dropdown_styles_match_textual_theme(snap_compare):
|
||||
"""Dropdown styles should match the textual theme. In this test, we've swapped the theme to nord."""
|
||||
StyledAutocomplete.CSS = """
|
||||
AutoComplete {
|
||||
& .autocomplete--highlight-match {
|
||||
color: $text-accent;
|
||||
}
|
||||
}
|
||||
"""
|
||||
|
||||
async def run_before(pilot: Pilot) -> None:
|
||||
pilot.app.theme = "nord"
|
||||
await pilot.press(*"ba")
|
||||
|
||||
assert snap_compare(StyledAutocomplete(), run_before=run_before)
|
||||
|
||||
|
||||
def test_cursor_color_change_and_dropdown_background_change(snap_compare):
|
||||
"""Checking various interactions between styles. See the test's CSS for info."""
|
||||
StyledAutocomplete.CSS = """
|
||||
AutoComplete {
|
||||
|
||||
& AutoCompleteList {
|
||||
color: red;
|
||||
background: $error-muted;
|
||||
& > .option-list--option-highlighted {
|
||||
color: $text-primary;
|
||||
background: magenta;
|
||||
text-style: italic;
|
||||
}
|
||||
}
|
||||
|
||||
& .autocomplete--highlight-match {
|
||||
color: $text-success;
|
||||
background: $success-muted;
|
||||
text-style: underline;
|
||||
}
|
||||
|
||||
}
|
||||
"""
|
||||
|
||||
async def run_before(pilot: Pilot) -> None:
|
||||
await pilot.press(*"ba")
|
||||
|
||||
assert snap_compare(StyledAutocomplete(), run_before=run_before)
|
Loading…
Add table
Add a link
Reference in a new issue