1515from django .template .engine import Engine
1616from django .test import override_settings
1717
18+ from django_bird .staticfiles import AssetType
19+
1820from .settings import DEFAULT_SETTINGS
1921
2022pytest_plugins = []
@@ -91,10 +93,11 @@ def _override_app_settings(**kwargs):
9193class 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