Files
textual/tests/test_path.py
Dave Pearson 6c9a1a6e5d Add tests for the initialisation of CSS_PATH
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.
2022-10-24 09:39:17 +01:00

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"))