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!!
