Skip to content

Commit 270f118

Browse files
committed
Improve test coverage.
1 parent 8cc4a26 commit 270f118

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

cssselect/parser.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -452,8 +452,7 @@ def parse_simple_selector(stream, inside_negation=False):
452452
continue
453453
if stream.peek() != ('DELIM', '('):
454454
result = Pseudo(result, ident)
455-
if result.ident == 'scope' and repr(
456-
result) == 'Pseudo[Element[*]:scope]':
455+
if result.__repr__() == 'Pseudo[Element[*]:scope]':
457456
if not (len(stream.used) == 2 or
458457
(len(stream.used) == 3
459458
and stream.used[0].type == 'S')):

tests/test_cssselect.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)