def test_with_name(self): grammar = '\n'.join([ 'import base.bnf', '', 'Grammar: MySpecialGrammar', '', '<A> ::= "SPECIAL"' ]) tree = Parser().parse(grammar) name = next(tree.filter(Node.is_name)) self.assertEqual( name.value, 'MySpecialGrammar', ) py_repr = tree.to_python() self.assertTrue('class MySpecialGrammar' in py_repr)
def test_external_filename_preserved_in_both_python_and_bnf(self): external = ('from darglint.parse.identifiers import (\n' ' ArgumentIdentifier,\n' ' NoqaIdentifier,\n' ')') grammar = f''' {external} <A> ::= "A" ''' node = Parser().parse(grammar) self.assertTrue(external in str(node)) self.assertTrue(external in node.to_python())