def test_internal_whitespace(self): self.assertEqual({ 'keyword': lexer.Token('K', ':foo', at(1, 5)), 'rest': lexer.Token('S', 'bar :baz', at(1, 12)), }, lexer.lex_comment(self.tok('-- :foo bar :baz')))
def test_keyword_only(self): self.assertEqual({ 'keyword': lexer.Token('K', ':foo', at(1, 4)), 'rest': lexer.Token('S', '', at(1, 8)), }, lexer.lex_comment(self.tok('-- :foo')))
def test_multiple_keywords(self): self.assertEqual({ 'keyword': lexer.Token('K', ':foo', at(1, 4)), 'rest': lexer.Token('S', 'bar :baz', at(1, 9)), }, lexer.lex_comment(self.tok('-- :foo bar :baz')))
def test_internal_keyword(self): self.assertIsNone(lexer.lex_comment(self.tok('-- stuff :foo bar')))
def test_not_a_comment(self): self.assertIsNone(lexer.lex_comment(self.tok('select 1')))
def test_no_keywords(self): self.assertIsNone(lexer.lex_comment(self.tok('-- foobar baz')))
def test_no_space(self): self.assertEqual({ 'keyword': lexer.Token('K', ':foo', at(1, 3)), 'rest': lexer.Token('S', '', at(1, 7)), }, lexer.lex_comment(self.tok('--:foo')))