mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
* Support multiple CSS paths * Update a type to match docstring * Ensure the demo app still works * Use absolute paths in tests to (hopefully) appease Windows * Notes about CSS changes in guide/docstrings, small grammar/typos fixes * Move snapshot apps into snapshot_tests dir, improve messaging in snapshot output, add test for multiple css files interacting with classvar CSS * Ensure consistent snapshot naming cross-platform * Use rpartition instead of partition in import_app * Fix handling of import_app when colon in arg * Support paths containing Windows drive names in import_app * Add note on new relative paths in snap_compare * Update docs/guide/CSS.md Co-authored-by: Will McGugan <willmcgugan@gmail.com> * Fix formatting * Update CHANGELOG to mention CSS_PATH supporting a list Co-authored-by: Will McGugan <willmcgugan@gmail.com>
39 lines
1022 B
Python
39 lines
1022 B
Python
from __future__ import annotations
|
|
from pathlib import Path
|
|
import pytest
|
|
|
|
from textual.app import App
|
|
|
|
APP_DIR = Path(__file__).parent
|
|
|
|
|
|
class RelativePathObjectApp(App[None]):
|
|
CSS_PATH = Path("test.css")
|
|
|
|
|
|
class RelativePathStrApp(App[None]):
|
|
CSS_PATH = "test.css"
|
|
|
|
|
|
class AbsolutePathObjectApp(App[None]):
|
|
CSS_PATH = Path("/tmp/test.css")
|
|
|
|
|
|
class AbsolutePathStrApp(App[None]):
|
|
CSS_PATH = "/tmp/test.css"
|
|
|
|
|
|
class ListPathApp(App[None]):
|
|
CSS_PATH = ["test.css", Path("/another/path.css")]
|
|
|
|
|
|
@pytest.mark.parametrize("app,expected_css_path_attribute", [
|
|
(RelativePathObjectApp(), [APP_DIR / "test.css"]),
|
|
(RelativePathStrApp(), [APP_DIR / "test.css"]),
|
|
(AbsolutePathObjectApp(), [Path("/tmp/test.css")]),
|
|
(AbsolutePathStrApp(), [Path("/tmp/test.css")]),
|
|
(ListPathApp(), [APP_DIR / "test.css", Path("/another/path.css")]),
|
|
])
|
|
def test_css_paths_of_various_types(app, expected_css_path_attribute):
|
|
assert app.css_path == [path.absolute() for path in expected_css_path_attribute]
|