Best Python code snippet using autotest_python
coverage.py
Source:coverage.py
...534 source.close()535 result = filename, lines, excluded_lines, line_map536 self.analysis_cache[morf] = result537 return result538 def first_line_of_tree(self, tree):539 while True:540 if len(tree) == 3 and type(tree[2]) == type(1):541 return tree[2]542 tree = tree[1]543 544 def last_line_of_tree(self, tree):545 while True:546 if len(tree) == 3 and type(tree[2]) == type(1):547 return tree[2]548 tree = tree[-1]549 550 def find_docstring_pass_pair(self, tree, spots):551 for i in range(1, len(tree)):552 if self.is_string_constant(tree[i]) and self.is_pass_stmt(tree[i+1]):553 first_line = self.first_line_of_tree(tree[i])554 last_line = self.last_line_of_tree(tree[i+1])555 self.record_multiline(spots, first_line, last_line)556 557 def is_string_constant(self, tree):558 try:559 return tree[0] == symbol.stmt and tree[1][1][1][0] == symbol.expr_stmt560 except:561 return False562 563 def is_pass_stmt(self, tree):564 try:565 return tree[0] == symbol.stmt and tree[1][1][1][0] == symbol.pass_stmt566 except:567 return False568 def record_multiline(self, spots, i, j):569 for l in range(i, j+1):570 spots[l] = (i, j)571 572 def get_suite_spots(self, tree, spots):573 """ Analyze a parse tree to find suite introducers which span a number574 of lines.575 """576 for i in range(1, len(tree)):577 if type(tree[i]) == type(()):578 if tree[i][0] == symbol.suite:579 # Found a suite, look back for the colon and keyword.580 lineno_colon = lineno_word = None581 for j in range(i-1, 0, -1):582 if tree[j][0] == token.COLON:583 # Colons are never executed themselves: we want the584 # line number of the last token before the colon.585 lineno_colon = self.last_line_of_tree(tree[j-1])586 elif tree[j][0] == token.NAME:587 if tree[j][1] == 'elif':588 # Find the line number of the first non-terminal589 # after the keyword.590 t = tree[j+1]591 while t and token.ISNONTERMINAL(t[0]):592 t = t[1]593 if t:594 lineno_word = t[2]595 else:596 lineno_word = tree[j][2]597 break598 elif tree[j][0] == symbol.except_clause:599 # "except" clauses look like:600 # ('except_clause', ('NAME', 'except', lineno), ...)601 if tree[j][1][0] == token.NAME:602 lineno_word = tree[j][1][2]603 break604 if lineno_colon and lineno_word:605 # Found colon and keyword, mark all the lines606 # between the two with the two line numbers.607 self.record_multiline(spots, lineno_word, lineno_colon)608 # "pass" statements are tricky: different versions of Python609 # treat them differently, especially in the common case of a610 # function with a doc string and a single pass statement.611 self.find_docstring_pass_pair(tree[i], spots)612 613 elif tree[i][0] == symbol.simple_stmt:614 first_line = self.first_line_of_tree(tree[i])615 last_line = self.last_line_of_tree(tree[i])616 if first_line != last_line:617 self.record_multiline(spots, first_line, last_line)618 self.get_suite_spots(tree[i], spots)619 def find_executable_statements(self, text, exclude=None):620 # Find lines which match an exclusion pattern.621 excluded = {}622 suite_spots = {}623 if exclude:624 reExclude = re.compile(exclude)625 lines = text.split('\n')626 for i in range(len(lines)):627 if reExclude.search(lines[i]):628 excluded[i+1] = 1...
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!!