Best Python code snippet using autotest_python
coverage.py
Source:coverage.py
...416 filename = filename[0:-1]417 elif ext != '.py':418 raise self.error, "File '%s' not Python source." % filename419 source = open(filename, 'r')420 lines, excluded_lines = self.find_executable_statements(421 source.read(), exclude=self.exclude_re422 )423 source.close()424 result = filename, lines, excluded_lines425 self.analysis_cache[morf] = result426 return result427 def get_suite_spots(self, tree, spots):428 import symbol, token429 for i in range(1, len(tree)):430 if type(tree[i]) == type(()):431 if tree[i][0] == symbol.suite:432 # Found a suite, look back for the colon and keyword.433 lineno_colon = lineno_word = None434 for j in range(i-1, 0, -1):435 if tree[j][0] == token.COLON:436 lineno_colon = tree[j][2]437 elif tree[j][0] == token.NAME:438 if tree[j][1] == 'elif':439 # Find the line number of the first non-terminal440 # after the keyword.441 t = tree[j+1]442 while t and token.ISNONTERMINAL(t[0]):443 t = t[1]444 if t:445 lineno_word = t[2]446 else:447 lineno_word = tree[j][2]448 break449 elif tree[j][0] == symbol.except_clause:450 # "except" clauses look like:451 # ('except_clause', ('NAME', 'except', lineno), ...)452 if tree[j][1][0] == token.NAME:453 lineno_word = tree[j][1][2]454 break455 if lineno_colon and lineno_word:456 # Found colon and keyword, mark all the lines457 # between the two with the two line numbers.458 for l in range(lineno_word, lineno_colon+1):459 spots[l] = (lineno_word, lineno_colon)460 self.get_suite_spots(tree[i], spots)461 def find_executable_statements(self, text, exclude=None):462 # Find lines which match an exclusion pattern.463 excluded = {}464 suite_spots = {}465 if exclude:466 reExclude = re.compile(exclude)467 lines = text.split('\n')468 for i in range(len(lines)):469 if reExclude.search(lines[i]):470 excluded[i+1] = 1471 import parser472 tree = parser.suite(text+'\n\n').totuple(1)473 self.get_suite_spots(tree, suite_spots)474 475 # Use the compiler module to parse the text and find the executable...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!