How to use get_suite_spots method in autotest

Best Python code snippet using autotest_python Github


Full Screen

...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[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 executable476 # statements. We add newlines to be impervious to final partial lines.477 statements = {}478 ast = compiler.parse(text+'\n\n')479 visitor = StatementFindingAstVisitor(statements, excluded, suite_spots)480 compiler.walk(ast, visitor, walker=visitor)481 lines = statements.keys()482 lines.sort()483 excluded_lines = excluded.keys()484 excluded_lines.sort()485 return lines, excluded_lines486 # format_lines(statements, lines). Format a list of line numbers487 # for printing by coalescing groups of lines as long as the lines...

Full Screen

Full Screen Github


Full Screen

...191 def visitGlobal(self, node):192 # "global" statements don't execute like others (they don't call the193 # trace function), so don't record their line numbers.194 pass195def get_suite_spots(tree, spots):196 """ Analyze a parse tree to find suite introducers which span a number197 of lines.198 """199 import symbol, token200 for i in range(1, len(tree)):201 if type(tree[i]) == type(()):202 if tree[i][0] == symbol.suite:203 # Found a suite, look back for the colon and keyword.204 lineno_colon = lineno_word = None205 for j in range(i-1, 0, -1):206 if tree[j][0] == token.COLON:207 lineno_colon = tree[j][2]208 elif tree[j][0] == token.NAME:209 if tree[j][1] == 'elif':210 # Find the line number of the first non-terminal211 # after the keyword.212 t = tree[j+1]213 while t and token.ISNONTERMINAL(t[0]):214 t = t[1]215 if t:216 lineno_word = t[2]217 else:218 lineno_word = tree[j][2]219 break220 elif tree[j][0] == symbol.except_clause:221 # "except" clauses look like:222 # ('except_clause', ('NAME', 'except', lineno), ...)223 if tree[j][1][0] == token.NAME:224 lineno_word = tree[j][1][2]225 break226 if lineno_colon and lineno_word:227 # Found colon and keyword, mark all the lines228 # between the two with the two line numbers.229 for l in range(lineno_word, lineno_colon+1):230 spots[l] = (lineno_word, lineno_colon)231 get_suite_spots(tree[i], spots)232class SrcInfo:233 pass234class ExclusionError(Exception):235 pass236def find_executable_statements(text, excludeCheck=lambda l:False):237 pure_excluded = {}238 excluded = {}239 special_lines = {}240 suite_spots = {}241 srcLines = [l.rstrip() for l in text.splitlines()]242 for i, line in enumerate(srcLines):243 v = None244 try:245 v = excludeCheck(line)246 except ExclusionError as exc:247 exc.lNum = i + 1248 raise exc249 if v:250 excluded[i+1] = v251 import parser252 tree = parser.suite(text+'\n\n').totuple(1)253 get_suite_spots(tree, suite_spots)254 # Use the compiler module to parse the text and find the executable255 # statements. We add newlines to be impervious to final partial lines.256 statements = {}257 all_statements = {}258 ast = compiler.parse(text+'\n\n')259 visitor = StatementFindingAstVisitor(statements, all_statements,260 excluded, suite_spots)261 compiler.walk(ast, visitor, walker=visitor)262 lines = statements.keys()263 lines.sort()264 excluded_lines = excluded.keys()265 excluded_lines.sort()266 info = []267 for lidx in range(len(srcLines)):...

Full Screen

Full Screen

Automation Testing Tutorials

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.

LambdaTest Learning Hubs:


You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run autotest automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?