def test(self): with open(input_file, 'r') as handle: src = handle.read() t = ast_utils.parse(src, py_ver) annotator = annotate.get_ast_annotator(py_ver)(src) annotator.visit(t) def escape(s): return '' if s is None else s.replace('\n', '\\n') result = '\n'.join( '{0:12} {1:20} \tprefix=|{2}|\tsuffix=|{3}|\tindent=|{4}|' .format( str((getattr(n, 'lineno', -1), getattr(n, 'col_offset', -1))), type(n).__name__ + ' ' + _get_node_identifier(n), escape(fmt.get(n, 'prefix')), escape(fmt.get(n, 'suffix')), escape(fmt.get(n, 'indent'))) for n in pasta.ast_walk(t, py_ver)) + '\n' # If specified, write the golden data instead of checking it if getattr(self, 'generate_goldens', False): return try: with io.open(golden_file, 'r', encoding='UTF-8') as f: golden = f.read() except IOError: self.fail('Missing golden data.') self.assertMultiLineEqual(golden, result)
def test(self): with open(input_file, 'r') as handle: src = handle.read() t = ast_utils.parse(src) annotator = annotate.AstAnnotator(src) annotator.visit(t) def escape(s): return '' if s is None else s.replace('\n', '\\n') result = '\n'.join( "{0:12} {1:20} \tprefix=|{2}|\tsuffix=|{3}|".format( str((getattr(n, 'lineno', -1), getattr(n, 'col_offset', -1))), type(n).__name__ + ' ' + _get_node_identifier(n), escape(ast_utils.prop(n, 'prefix')), escape(ast_utils.prop(n, 'suffix'))) for n in ast.walk(t)) + '\n' # If specified, write the golden data instead of checking it if getattr(self, 'generate_goldens', False): if not os.path.isdir(os.path.dirname(golden_file)): os.makedirs(os.path.dirname(golden_file)) with open(golden_file, 'w') as f: f.write(result) print('Wrote: ' + golden_file) return try: with open(golden_file, 'r') as f: golden = f.read() except IOError: self.fail('Missing golden data.') self.assertMultiLineEqual(golden, result)
def test(self): with open(filepath, 'r') as handle: src = handle.read() t = ast_utils.parse(src) annotator = annotate.AstAnnotator(src) annotator.visit(t) self.assertMultiLineEqual(codegen.to_str(t), src) self.assertEqual([], annotator.tokens._parens, 'Unmatched parens')
def parse(src): t = ast_utils.parse(src) annotator = annotate.AstAnnotator(src) annotator.visit(t) return t