Skip to content

Commit 20f3c50

Browse files
refactor components and loader tests for new util dataclasses (#90)
1 parent 15a8d80 commit 20f3c50

File tree

4 files changed

+245
-149
lines changed

4 files changed

+245
-149
lines changed

tests/conftest.py

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
from django.template.engine import Engine
1616
from django.test import override_settings
1717

18+
from django_bird.staticfiles import AssetType
19+
1820
from .settings import DEFAULT_SETTINGS
1921

2022
pytest_plugins = []
@@ -91,10 +93,11 @@ def _override_app_settings(**kwargs):
9193
class TestComponent:
9294
name: str
9395
content: str
96+
file: Path | None = None
9497
parent_dir: str = "bird"
9598
sub_dir: str | None = None
9699

97-
def create(self, base_dir: Path) -> Path:
100+
def create(self, base_dir: Path) -> TestComponent:
98101
parent = base_dir / self.parent_dir
99102
parent.mkdir(exist_ok=True)
100103

@@ -106,7 +109,32 @@ def create(self, base_dir: Path) -> Path:
106109

107110
template = dir / f"{self.name}.html"
108111
template.write_text(self.content)
109-
return template
112+
113+
self.file = template
114+
115+
return self
116+
117+
118+
@dataclass
119+
class TestAsset:
120+
component: TestComponent
121+
content: str
122+
asset_type: AssetType
123+
file: Path | None = None
124+
125+
def create(self) -> TestAsset:
126+
if self.component.file is None:
127+
raise ValueError("Component must be created before adding assets")
128+
129+
component_dir = self.component.file.parent
130+
component_name = self.component.file.stem
131+
132+
asset_file = component_dir / f"{component_name}{self.asset_type.ext}"
133+
asset_file.write_text(self.content)
134+
135+
self.file = asset_file
136+
137+
return self
110138

111139

112140
@dataclass

0 commit comments

Comments
 (0)