@@ -178,6 +178,12 @@ def parse_one(css):
178178 assert len (result ) == 1
179179 return result [0 ]
180180
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+
181187 assert parse_one ('foo' ) == ('Element[foo]' , None )
182188 assert parse_one ('*' ) == ('Element[*]' , None )
183189 assert parse_one (':empty' ) == ('Pseudo[Element[*]:empty]' , None )
@@ -205,7 +211,6 @@ def parse_one(css):
205211 'CombinedSelector[Hash[Element[lorem]#ipsum] ~ '
206212 'Pseudo[Attrib[Class[Hash[Element[a]#b].c][href]]:empty]]' ,
207213 'selection' )
208-
209214 assert parse_pseudo (':scope > div, foo bar' ) == [
210215 ('CombinedSelector[Pseudo[Element[*]:scope] > Element[div]]' , None ),
211216 ('CombinedSelector[Element[foo] <followed> Element[bar]]' , None )
@@ -230,6 +235,11 @@ def parse_one(css):
230235 self .assertRaises (ExpressionError , tr .selector_to_xpath , selector ,
231236 translate_pseudo_elements = True )
232237
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+
233243 def test_specificity (self ):
234244 def specificity (css ):
235245 selectors = parse (css )
0 commit comments