22
33import pytest
44
5+ from django_bird .components import Component
56from django_bird .params import Param
67from django_bird .params import Params
78from django_bird .params import Value
8- from django_bird .templatetags .tags .prop import PropNode
9+
10+ from .utils import TestComponent
911
1012
1113class TestValue :
@@ -141,39 +143,39 @@ def test_from_bit(self, bit, expected):
141143
142144class TestParams :
143145 @pytest .mark .parametrize (
144- "params,nodelist ,context,expected_props,expected_attrs" ,
146+ "params,test_component ,context,expected_props,expected_attrs" ,
145147 [
146148 (
147149 Params (attrs = [Param (name = "class" , value = Value (None ))]),
148- [ PropNode (name = "class " , default = "btn" , attrs = [])] ,
150+ TestComponent (name = "test " , content = "{% bird:prop class='btn' %}" ) ,
149151 {},
150152 {"class" : "btn" },
151153 [],
152154 ),
153155 (
154156 Params (attrs = [Param (name = "class" , value = Value ("btn" , quoted = False ))]),
155- [ PropNode (name = "class " , default = None , attrs = [])] ,
157+ TestComponent (name = "test " , content = "{% bird:prop class %}" ) ,
156158 {},
157159 {"class" : "btn" },
158160 [],
159161 ),
160162 (
161163 Params (attrs = [Param (name = "class" , value = Value ("btn" , quoted = False ))]),
162- None ,
164+ TestComponent (name = "test" , content = "" ),
165+ {},
163166 {},
164- None ,
165167 [Param (name = "class" , value = Value ("btn" , quoted = False ))],
166168 ),
167169 (
168170 Params (attrs = [Param (name = "class" , value = Value ("static" , quoted = True ))]),
169- [ PropNode (name = "class " , default = None , attrs = [])] ,
171+ TestComponent (name = "test " , content = "{% bird:prop class %}" ) ,
170172 {"static" : "dynamic" },
171173 {"class" : "static" },
172174 [],
173175 ),
174176 (
175177 Params (attrs = [Param (name = "class" , value = Value ("var" , quoted = False ))]),
176- [ PropNode (name = "class " , default = None , attrs = [])] ,
178+ TestComponent (name = "test " , content = "{% bird:prop class %}" ) ,
177179 {"var" : "dynamic" },
178180 {"class" : "dynamic" },
179181 [],
@@ -182,7 +184,7 @@ class TestParams:
182184 Params (
183185 attrs = [Param (name = "class" , value = Value ("undefined" , quoted = False ))]
184186 ),
185- [ PropNode (name = "class " , default = None , attrs = [])] ,
187+ TestComponent (name = "test " , content = "{% bird:prop class %}" ) ,
186188 {},
187189 {"class" : "undefined" },
188190 [],
@@ -191,17 +193,25 @@ class TestParams:
191193 Params (
192194 attrs = [Param (name = "class" , value = Value ("user.name" , quoted = False ))]
193195 ),
194- [ PropNode (name = "class " , default = None , attrs = [])] ,
196+ TestComponent (name = "test " , content = "{% bird:prop class %}" ) ,
195197 {},
196198 {"class" : "user.name" },
197199 [],
198200 ),
199201 ],
200202 )
201203 def test_render_props (
202- self , params , nodelist , context , expected_props , expected_attrs
204+ self ,
205+ params ,
206+ test_component ,
207+ context ,
208+ expected_props ,
209+ expected_attrs ,
210+ templates_dir ,
203211 ):
204- assert params .render_props (nodelist , context ) == expected_props
212+ test_component .create (templates_dir )
213+ component = Component .from_name (test_component .name )
214+ assert params .render_props (component , context ) == expected_props
205215 assert params .attrs == expected_attrs
206216
207217 @pytest .mark .parametrize (
0 commit comments