@@ -178,6 +178,12 @@ def parse_one(css):
178
178
assert len (result ) == 1
179
179
return result [0 ]
180
180
181
+ def test_pseudo_repr (css ):
182
+ result = parse (css )
183
+ assert len (result ) == 1
184
+ selector = result [0 ]
185
+ return selector .parsed_tree .__repr__ ()
186
+
181
187
assert parse_one ('foo' ) == ('Element[foo]' , None )
182
188
assert parse_one ('*' ) == ('Element[*]' , None )
183
189
assert parse_one (':empty' ) == ('Pseudo[Element[*]:empty]' , None )
@@ -205,7 +211,6 @@ def parse_one(css):
205
211
'CombinedSelector[Hash[Element[lorem]#ipsum] ~ '
206
212
'Pseudo[Attrib[Class[Hash[Element[a]#b].c][href]]:empty]]' ,
207
213
'selection' )
208
-
209
214
assert parse_pseudo (':scope > div, foo bar' ) == [
210
215
('CombinedSelector[Pseudo[Element[*]:scope] > Element[div]]' , None ),
211
216
('CombinedSelector[Element[foo] <followed> Element[bar]]' , None )
@@ -230,6 +235,11 @@ def parse_one(css):
230
235
self .assertRaises (ExpressionError , tr .selector_to_xpath , selector ,
231
236
translate_pseudo_elements = True )
232
237
238
+ # Special test for the unicode symbols and ':scope' element if check
239
+ # Errors if use repr() instead of __repr__()
240
+ assert test_pseudo_repr (u':fİrst-child' ) == u'Pseudo[Element[*]:fİrst-child]'
241
+ assert test_pseudo_repr (':scope' ) == 'Pseudo[Element[*]:scope]'
242
+
233
243
def test_specificity (self ):
234
244
def specificity (css ):
235
245
selectors = parse (css )
0 commit comments