css linter: Report empty declarations more clearly.

Raise a CssParserException when declarations are empty.
This commit is contained in:
Steve Howell
2016-09-22 17:30:31 -07:00
committed by Tim Abbott
parent f0eaee68e4
commit 28bb9c883a
2 changed files with 14 additions and 1 deletions

View File

@@ -208,7 +208,11 @@ def parse_declaration_block(tokens):
def parse_declaration(tokens):
# type: (List[Token]) -> CssDeclaration
i, pre_fluff = get_whitespace_and_comments(tokens, 0)
try:
css_property = tokens[i].s
except IndexError:
raise CssParserException('Empty declaration')
if tokens[i+1].s != ':':
# print(css_property)
raise CssParserException('We expect a colon here')

View File

@@ -62,6 +62,15 @@ class ParserTestHappyPath(unittest.TestCase):
self.assertFalse(section.declaration_block.declarations[0].semicolon)
def test_empty_block(self):
# type: () -> None
my_css = '''
div {
}'''
error = 'Empty declaration'
with self.assertRaisesRegexp(CssParserException, error): # type: ignore # See https://github.com/python/typeshed/issues/372
parse(my_css)
def test_multi_line_selector(self):
# type: () -> None
my_css = '''