Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
def _assertReadWord(*args):
    return word_parse_test._assertReadWord(*args)