def assertStyle(test, expected_style, word_str): w = _assertReadWord(test, word_str) new_word = word.TildeDetect(w) if new_word is not None: w = new_word actual = osh2oil._GetRhsStyle(w) test.assertEqual(expected_style, actual)
def _Detect(test, word_str, expected): # TODO: This function could be moved to test_lib. log('-'*80) w = word_parse_test._assertReadWord(test, word_str) actual = word_.DetectShAssignment(w) left_token, close_token, part_offset = actual expected_left, expected_close, expected_part_offset = expected print(left_token, close_token, part_offset) print() if expected_left is None: test.assertEqual(None, left_token) else: test.assertEqual(expected_left, left_token.id) if expected_close is None: test.assertEqual(None, close_token) else: test.assertEqual(expected_left, left_token.id) test.assertEqual(expected_part_offset, part_offset) arena = test_lib.MakeArena('word_test.py') parse_opts = parse_lib.OilParseOptions() parse_ctx = parse_lib.ParseContext(arena, parse_opts, {}, None) if left_token and left_token.id in (Id.Lit_VarLike, Id.Lit_ArrayLhsOpen): more_env = [] preparsed = (left_token, close_token, part_offset, w) try: cmd_parse._AppendMoreEnv([preparsed], more_env) except Exception as e: log('Error: %s', e) else: log('more_env: %s', more_env) try: assign_pair = cmd_parse._MakeAssignPair(parse_ctx, preparsed) except Exception as e: log('Error: %s', e) else: log('assign_pair: %s', assign_pair)
def _assertReadWord(*args): return word_parse_test._assertReadWord(*args)