def main(argv=sys.argv): if len(argv) != 3: sys.stdout.write(__doc__) return 1 global _INDENT try: _INDENT = int(os.environ['INDENT']) except KeyError: pass except: sys.stderr.write('Unable to use indent of %s\n' % os.environ.get('INDENT')) filename, class_name = argv[1:] source = utils.ReadFile(filename) if source is None: return 1 builder = ast.BuilderFromSource(source, filename) try: entire_ast = filter(None, builder.Generate()) except KeyboardInterrupt: return except: # An error message was already printed since we couldn't parse. pass else: _GenerateMock(filename, source, entire_ast, class_name)
def main(argv=sys.argv): if len(argv) < 2: sys.stderr.write('Google Mock Class Generator v%s\n\n' % '.'.join(map(str, _VERSION))) sys.stderr.write(__doc__) return 1 global _INDENT try: _INDENT = int(os.environ['INDENT']) except KeyError: pass except: sys.stderr.write('Unable to use indent of %s\n' % os.environ.get('INDENT')) filename = argv[1] desired_class_names = None # None means all classes in the src file. if len(argv) >= 3: desired_class_names = set(argv[2:]) source = utils.ReadFile(filename) if source is None: return 1 builder = ast.BuilderFromSource(source, filename) try: entire_ast = filter(None, builder.Generate()) except KeyboardInterrupt: return except: # An error message was already printed since we couldn't parse. sys.exit(1) else: lines = _GenerateMocks(filename, source, entire_ast, desired_class_names) sys.stdout.write('\n'.join(lines))
def run(filepath): global _INDENT try: _INDENT = int(os.environ['INDENT']) except KeyError: pass except: sys.stderr.write('Unable to use indent of %s\n' % os.environ.get('INDENT')) desired_class_names = None # None means all classes in the source file. source = utils.ReadFile(filepath) if source is None: return 1 builder = ast.BuilderFromSource(source, filepath) try: entire_ast = filter(None, builder.Generate()) except KeyboardInterrupt: return except: # An error message was already printed since we couldn't parse. sys.exit(1) else: lines = _GenerateTests(filepath, source, entire_ast) return lines
def main(argv): db = MySQLdb.connect(host=_DB_HOST, user=_DB_USER, passwd=_DB_PASSWD, db=_DB_NAME) changelist = SourceRevision() # Parse all the files and get all the tokens. for filename in argv[1:]: source = utils.ReadFile(filename) if source is None: continue print 'Processing', filename tokens = list(tokenize.GetTokens(source)) builder = ast.AstBuilder(iter(tokens), source) entire_ast = filter(None, builder.Generate()) changelist.Add(filename, source, tokens, entire_ast) # Before storing details about each file, store the new identifiers # and paths. This makes it easy to reference these. Since they # are write-once and not modified, this saves DB work and does not # introduce any race conditions. changelist.UpdatePathsAndIdentifiers(db) # For each file, write it the parse tree to the DB. for parsed_source in changelist.GetParseTrees(): parsed_source.Write(db, changelist.paths, changelist.identifiers)
def main(argv=sys.argv): if len(argv) < 3: sys.stderr.write('Cyphesis Stub Class Generator v%s\n\n' % '.'.join(map(str, _VERSION))) sys.stderr.write(__doc__) return 1 global _INDENT try: _INDENT = int(os.environ['INDENT']) except KeyError: pass except: sys.stderr.write('Unable to use indent of %s\n' % os.environ.get('INDENT')) filename = argv[1] stubdirectory = argv[2] source = utils.ReadFile(filename) if source is None: return 1 builder = ast.BuilderFromSource(source, filename) try: entire_ast = filter(None, builder.Generate()) except KeyboardInterrupt: return except: # An error message was already printed since we couldn't parse. sys.exit(1) else: filenameSegments = filename.split("/") customFileName = 'stub' + ''.join(filenameSegments[-1].split('.')[0:-1]) + '_custom.h' if len(filenameSegments) > 1: stubpath = stubdirectory + '/' + '/'.join(filenameSegments[0:-1]) + "/stub" + filenameSegments[-1] stubCustomPath = stubdirectory + '/' + '/'.join(filenameSegments[0:-1]) + "/" + customFileName else: stubpath = stubdirectory + "/stub" + filenameSegments[-1] stubCustomPath = stubdirectory + "/" + customFileName try: os.makedirs(os.path.dirname(stubpath)) except OSError as exc: # Python >2.5 if exc.errno == errno.EEXIST and os.path.isdir(os.path.dirname(stubpath)): pass else: raise lines = _GenerateStubs(filename, source, entire_ast) with open(stubpath, 'w') as stubFile: stubFile.write('\n'.join(lines)) sys.stdout.write("Wrote to %s\n" % stubpath) if not os.path.isfile(stubCustomPath): with open(stubCustomPath, 'w') as stubCustomFile: stubCustomFile.write('//Add custom implementations of stubbed functions here; this file won\'t be rewritten when re-generating stubs.\n') sys.stdout.write("Also created empty custom stub file at %s\n" % stubCustomPath)
def ReadSource(relative_filename): source = None for path in GetIncludeDirs(relative_filename): filename = os.path.join(path, relative_filename) source = utils.ReadFile(filename, False) if source is not None: return source, filename return None, relative_filename
def main(argv): """Driver mostly for testing purposes.""" for filename in argv[1:]: source = utils.ReadFile(filename) if source is None: continue for token in GetTokens(source): print(('%-12s: %s' % (token.token_type, token.name))) # print('\r%6.2f%%' % (100.0 * index / token.end),) sys.stdout.write('\n')
def main(argv): for filename in argv[1:]: source = utils.ReadFile(filename) if source is None: continue print('Processing %s' % filename) builder = ast.BuilderFromSource(source, filename) entire_ast = list(filter(None, builder.Generate())) hunter = WarningHunter(filename, source, entire_ast) hunter.FindWarnings() hunter.ShowWarnings()
def main(argv): for filename in argv[1:]: source = utils.ReadFile(filename) if source is None: continue print 'Processing', filename builder = ast.BuilderFromSource(source, filename) try: entire_ast = filter(None, builder.Generate()) except KeyboardInterrupt: return except: # An error message was already printed since we couldn't parse. pass else: _FindWarnings(filename, source, entire_ast, True)
def main(argv=sys.argv): parser = argparse.ArgumentParser(description="Simple generator for gmock functions", epilog=__doc__) parser.add_argument('--bases', dest='bases', action='store_true', help='include functions from base classes') parser.add_argument('header', nargs='?', help='header file', default='') parser.add_argument('classes', metavar='class_name', nargs='*', help='generate mocks for only these classes') args = parser.parse_args() if not args.header: sys.stderr.write('Google Mock Class Generator v%s\n\n' % '.'.join(map(str, _VERSION))) parser.print_help() return 1 global _INDENT try: _INDENT = int(os.environ['INDENT']) except KeyError: pass except: sys.stderr.write('Unable to use indent of %s\n' % os.environ.get('INDENT')) filename = args.header desired_class_names = set(args.classes) # None means all classes in the source file. do_bases = args.bases source = utils.ReadFile(filename) if source is None: return 1 builder = ast.BuilderFromSource(source, filename) try: entire_ast = filter(None, builder.Generate()) except KeyboardInterrupt: return except: # An error message was already printed since we couldn't parse. sys.exit(1) else: lines = _GenerateMocks(filename, source, entire_ast, desired_class_names, do_bases) sys.stdout.write('\n'.join(lines))
def main(): # Parse options. usage = '\nGoogle Mock Class Generator v%s\n\n' % '.'.join( map(str, _VERSION)) usage += __doc__ usage = usage.rstrip() parser = OptionParser(usage) parser.add_option( '-p', '--partial', action='store_true', dest='partial', help= 'Generate a partial mock instead of just a mock (*NOTE* methods with unnamed parameters are unsupported and will cause problems.' ) (options, parsed_args) = parser.parse_args() # Set global flag for generated file type. global _PARTIAL if options.partial: _PARTIAL = True else: _PARTIAL = False # Create arguments, taking out any options. argv = [sys.argv[0]] + parsed_args if len(argv) < 2: parser.print_help() return 1 global _INDENT try: _INDENT = int(os.environ['INDENT']) except KeyError: pass except: sys.stderr.write('Unable to use indent of %s\n' % os.environ.get('INDENT')) filename = argv[1] desired_class_names = None # None means all classes in the source file. if len(argv) >= 3: desired_class_names = set(argv[2:]) source = utils.ReadFile(filename) if source is None: return 1 builder = ast.BuilderFromSource(source, filename) try: entire_ast = filter(None, builder.Generate()) except KeyboardInterrupt: return except: # An error message was already printed since we couldn't parse. pass else: lines = _GenerateMocks(filename, source, entire_ast, desired_class_names) sys.stdout.write('\n'.join(lines))