mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
This improves coverage of _make_path_object_relative in _path.py, and generally provides some simple tests of how CSS_PATH gets turned into a css_path property of an App. Note that if an actual CSS path gets added (something that has been mooted) this will need updating.
44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
from typing import Type
|
|
from pathlib import Path
|
|
|
|
from textual.app import App
|
|
|
|
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"
|
|
|
|
def path_tester(obj_type: Type[App[None]], str_type: Type[App[None]], intended_result: Path) -> None:
|
|
assert isinstance(obj_type().css_path,Path), (
|
|
"CSS_PATH didn't stay as an object"
|
|
)
|
|
assert isinstance(str_type().css_path,Path), (
|
|
"CSS_PATH wasn't converted from str to Path"
|
|
)
|
|
assert obj_type().css_path == intended_result, (
|
|
"CSS_PATH doesn't match the intended result."
|
|
)
|
|
assert str_type().css_path == intended_result, (
|
|
"CSS_PATH doesn't match the intended result."
|
|
)
|
|
assert str_type().css_path == obj_type().css_path, (
|
|
"CSS_PATH str to Path conversion gave a different result"
|
|
)
|
|
|
|
def test_relative_path():
|
|
path_tester(RelativePathObjectApp, RelativePathStrApp, ((Path(__file__).absolute().parent ) / "test.css"))
|
|
|
|
def test_absolute_path():
|
|
path_tester(AbsolutePathObjectApp, AbsolutePathStrApp, Path("/tmp/test.css"))
|