43 lines
1 KiB
Python
43 lines
1 KiB
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]
|