mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
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.
This commit is contained in:
43
tests/test_path.py
Normal file
43
tests/test_path.py
Normal file
@@ -0,0 +1,43 @@
|
||||
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"))
|
||||
Reference in New Issue
Block a user