def test_debug_print_ast(self): """ Test if the ``debug_print_ast`` work as expected. """ # RootTreeNode # - level 1 child 1 # - level 2 child 1 # - level 3 child 1 # - level 1 child 2 root_tree_node = RootTreeNode() l1_tree_node = root_tree_node.new_child('level_1_child_1', DummyTreeNode, attrs={'foo': 'bar'}) root_tree_node.new_child('level_1_child_2', DummyTreeNode) l2_tree_node = l1_tree_node.new_child('level_2_child_1', DummyTreeNode) l2_tree_node.new_child('level_3_child_1', DummyTreeNode, content='Hello world!') output_returned = [] def _print_to_str(*args): output_returned.append(' '.join(args)) debug_print_ast(root_tree_node, print_fnct=_print_to_str) expected_output = [ "RootTreeNode(name=\"None\", attrs={}, content='', len(children)=2) ", " DummyTreeNode(name=\"level_1_child_1\", attrs={'foo': 'bar'}, content='', len(children)=1) ", " DummyTreeNode(name=\"level_2_child_1\", attrs={}, content='', len(children)=1) ", " DummyTreeNode(name=\"level_3_child_1\", attrs={}, content='Hello world!', len(children)=0) ", " DummyTreeNode(name=\"level_1_child_2\", attrs={}, content='', len(children)=0) " ] self.maxDiff = None self.assertEqual(expected_output, output_returned)
def test_debug_print_ast_with_erroneous_parent(self): """ Test if the ``debug_print_ast`` work as expected when an erroneous aprent is found. """ # RootTreeNode # - level 1 child 1 # - level 2 child 1 # - level 3 child 1 # - level 1 child 2 root_tree_node = RootTreeNode() l1_tree_node = root_tree_node.new_child('level_1_child_1', DummyTreeNode, attrs={'foo': 'bar'}) root_tree_node.new_child('level_1_child_2', DummyTreeNode) l2_tree_node = l1_tree_node.new_child('level_2_child_1', DummyTreeNode) l3_tree_node = l2_tree_node.new_child('level_3_child_1', DummyTreeNode, content='Hello world!') # Add some oops l3_tree_node.parent = root_tree_node output_returned = [] def _print_to_str(*args): output_returned.append(' '.join(args)) debug_print_ast(root_tree_node, print_fnct=_print_to_str) expected_output = [ "RootTreeNode(name=\"None\", attrs={}, content='', len(children)=2) ", " DummyTreeNode(name=\"level_1_child_1\", attrs={'foo': 'bar'}, content='', len(children)=1) ", " DummyTreeNode(name=\"level_2_child_1\", attrs={}, content='', len(children)=1) ", " DummyTreeNode(name=\"level_3_child_1\", attrs={}, content='Hello world!', len(children)=0) !! Parent mismatch !!", " DummyTreeNode(name=\"level_1_child_2\", attrs={}, content='', len(children)=0) " ] self.maxDiff = None self.assertEqual(expected_output, output_returned)
# Get user input print( 'Use CTRL+C, CTRL+D or simply type "EOF" on a single line to stop text input' ) text = [] try: while True: line = input('skcode> ') if line == 'EOF': break text.append(line) except (KeyboardInterrupt, EOFError): pass text = '\n'.join(text) # Parse text ast = parse_skcode(text) # Dump parsing info print('----- Input text -----') print(text) print('----- Document tree -----') debug_print_ast(ast) print('----- HTML output -----') print(render_to_html(ast)) print('----- TEXT output -----') print(render_to_text(ast)) # End of script input('Press enter to exit.')
print('-- SkCode testing terminal --') # Get user input print('Use CTRL+C, CTRL+D or simply type "EOF" on a single line to stop text input') text = [] try: while True: line = input('skcode> ') if line == 'EOF': break text.append(line) except (KeyboardInterrupt, EOFError): pass text = '\n'.join(text) # Parse text ast = parse_skcode(text) # Dump parsing info print('----- Input text -----') print(text) print('----- Document tree -----') debug_print_ast(ast) print('----- HTML output -----') print(render_to_html(ast)) print('----- TEXT output -----') print(render_to_text(ast)) # End of script input('Press enter to exit.')