Ejemplo n.º 1
0
def test_multilline_no_transform():
    # no subprocess transformations happen here since all variables are known
    code = 'ls = 1\nl = 1\nls -l\n'
    tree = check_parse(code)
    lsnode = tree.body[2]
    assert 3 == min_line(lsnode)
    assert isinstance(lsnode.value, BinOp)
Ejemplo n.º 2
0
def test_echo_hello():
    assert check_parse('echo hello')
Ejemplo n.º 3
0
def test_indent_with_empty_line():
    code = "if True:\n" "\n" "    some_command for_sub_process_mode\n"
    assert check_parse(code)
Ejemplo n.º 4
0
def test_lookup_anon_alias():
    code = 'echo "hi" | @(lambda a, s=None: a[0]) foo bar baz\n'
    assert check_parse(code)
Ejemplo n.º 5
0
def test_which_ls():
    assert check_parse("which ls")
Ejemplo n.º 6
0
def test_echo_comma_2val():
    code = "echo 1,2\n"
    assert check_parse(code)
Ejemplo n.º 7
0
def test_multilline_num():
    code = ('x = 1\n'
            'ls -l\n')  # this second line wil be transformed
    tree = check_parse(code)
    lsnode = tree.body[1]
    assert 2 == min_line(lsnode)
Ejemplo n.º 8
0
def test_good_rhs_subproc():
    # nonsense but parsebale
    code = 'str().split() | ![grep exit]\n'
    check_parse(code)
Ejemplo n.º 9
0
def test_command_in_func_with_comment():
    code = "def f():\n" "    echo hello # comment\n"
    assert check_parse(code)
Ejemplo n.º 10
0
def test_command_in_func_with_comment():
    code = ('def f():\n' '    echo hello # comment\n')
    assert check_parse(code)
Ejemplo n.º 11
0
def test_command_in_func():
    code = ('def f():\n' '    echo hello\n')
    assert check_parse(code)
Ejemplo n.º 12
0
def test_indent_with_empty_line():
    code = ('if True:\n' '\n' '    some_command for_sub_process_mode\n')
    assert check_parse(code)
Ejemplo n.º 13
0
def test_bad_indent():
    code = ('if True:\n' 'x = 1\n')
    with pytest.raises(SyntaxError):
        check_parse(code)
Ejemplo n.º 14
0
def test_lookup_alias():
    code = ('def foo(a,  s=None):\n' '    return "bar"\n' '@(foo)\n')
    assert check_parse(code)
Ejemplo n.º 15
0
def test_simple_func():
    code = ('def prompt():\n' "    return '{user}'.format(user='******')\n")
    assert check_parse(code)
Ejemplo n.º 16
0
def test_indent_with_empty_line():
    code = ('if True:\n'
            '\n'
            '    some_command for_sub_process_mode\n')
    assert check_parse(code)
Ejemplo n.º 17
0
def test_command_in_func_with_comment():
    code = ('def f():\n'
            '    echo hello # comment\n')
    assert check_parse(code)
Ejemplo n.º 18
0
def test_pyeval_redirect():
    code = 'echo @("foo") > bar\n'
    assert check_parse(code)
Ejemplo n.º 19
0
def test_pyeval_multiline_str():
    code = 'echo @("""hello\nmom""")\n'
    assert check_parse(code)
Ejemplo n.º 20
0
def test_echo_comma():
    code = "echo ,\n"
    assert check_parse(code)
Ejemplo n.º 21
0
def test_echo_comma():
    code = "echo ,\n"
    assert check_parse(code)
Ejemplo n.º 22
0
def test_echo_comma_val():
    code = "echo ,1\n"
    assert check_parse(code)
Ejemplo n.º 23
0
def test_two_echo_line_cont(code):
    assert check_parse(code)
Ejemplo n.º 24
0
def test_echo_comma_2val():
    code = "echo 1,2\n"
    assert check_parse(code)
Ejemplo n.º 25
0
def test_echo_star_with_semi():
    assert check_parse("echo * spam ; ![echo eggs]\n")
Ejemplo n.º 26
0
def test_echo_line_cont():
    code = 'echo "1 \\\n2"\n'
    assert check_parse(code)
Ejemplo n.º 27
0
def test_bad_indent():
    code = "if True:\n" "x = 1\n"
    with pytest.raises(SyntaxError):
        check_parse(code)
Ejemplo n.º 28
0
def test_two_echo_line_cont(code):
    assert check_parse(code)
Ejemplo n.º 29
0
def test_command_in_func_with_comment():
    code = "def f():\n" "    echo hello # comment\n"
    assert check_parse(code)
Ejemplo n.º 30
0
def test_ls_dashl():
    assert check_parse("ls -l")
Ejemplo n.º 31
0
def test_bad_indent():
    code = ('if True:\n'
            'x = 1\n')
    with pytest.raises(SyntaxError):
        check_parse(code)
Ejemplo n.º 32
0
def test_which_ls():
    assert check_parse("which ls")
Ejemplo n.º 33
0
def test_command_in_func():
    code = ('def f():\n'
            '    echo hello\n')
    assert check_parse(code)
Ejemplo n.º 34
0
def test_echo_hello():
    assert check_parse("echo hello")
Ejemplo n.º 35
0
def test_echo_comma():
    code = 'echo ,\n'
    assert check_parse(code)
Ejemplo n.º 36
0
def test_echo_star_with_semi():
    assert check_parse("echo * spam ; ![echo eggs]\n")
Ejemplo n.º 37
0
def test_multilline_num(line1):
    code = line1 + '\nls -l\n'
    tree = check_parse(code)
    lsnode = tree.body[1]
    assert 2 == min_line(lsnode)
    assert isinstance(lsnode.value, Call)
Ejemplo n.º 38
0
def test_lookup_alias():
    code = "def foo(a,  s=None):\n" '    return "bar"\n' "@(foo)\n"
    assert check_parse(code)
Ejemplo n.º 39
0
def test_args_in_scope(inp):
    # Context sensitive parsing should not modify AST
    exp = pyast.parse(inp)
    obs = check_parse(inp)
    assert nodes_equal(exp, obs)
Ejemplo n.º 40
0
def test_lookup_anon_alias():
    code = 'echo "hi" | @(lambda a, s=None: a[0]) foo bar baz\n'
    assert check_parse(code)
Ejemplo n.º 41
0
def test_pyeval_multiline_str():
    code = 'echo @("""hello\nmom""")\n'
    assert check_parse(code)
Ejemplo n.º 42
0
def test_simple_func_broken():
    code = "def prompt():\n" "    return '{user}'.format(\n" "       user='******')\n"
    assert check_parse(code)
Ejemplo n.º 43
0
def test_echo_comma_val():
    code = "echo ,1\n"
    assert check_parse(code)
Ejemplo n.º 44
0
def test_bad_indent():
    code = "if True:\n" "x = 1\n"
    with pytest.raises(SyntaxError):
        check_parse(code)
Ejemplo n.º 45
0
def test_echo_line_cont():
    code = 'echo "1 \\\n2"\n'
    assert check_parse(code)
Ejemplo n.º 46
0
def test_bad_rhs_subproc():
    # nonsense but unparsable
    code = "str().split() | grep exit\n"
    with pytest.raises(SyntaxError):
        check_parse(code)
Ejemplo n.º 47
0
def test_ls_dashl():
    assert check_parse("ls -l")
Ejemplo n.º 48
0
def test_indent_with_empty_line():
    code = "if True:\n" "\n" "    some_command for_sub_process_mode\n"
    assert check_parse(code)
Ejemplo n.º 49
0
def test_echo_hello():
    assert check_parse("echo hello")
Ejemplo n.º 50
0
def test_command_in_func():
    code = "def f():\n" "    echo hello\n"
    assert check_parse(code)
Ejemplo n.º 51
0
def test_lookup_alias():
    code = "def foo(a,  s=None):\n" '    return "bar"\n' "@(foo)\n"
    assert check_parse(code)
Ejemplo n.º 52
0
def test_multilline_num():
    code = ('x = 1\n' 'ls -l\n')  # this second line wil be transformed
    tree = check_parse(code)
    lsnode = tree.body[1]
    assert 2 == min_line(lsnode)
Ejemplo n.º 53
0
def test_simple_func_broken():
    code = "def prompt():\n" "    return '{user}'.format(\n" "       user='******')\n"
    assert check_parse(code)
Ejemplo n.º 54
0
def test_good_rhs_subproc():
    # nonsense but parsebale
    code = 'str().split() | ![grep exit]\n'
    check_parse(code)
Ejemplo n.º 55
0
def test_bad_rhs_subproc():
    # nonsense but unparsable
    code = "str().split() | grep exit\n"
    with pytest.raises(SyntaxError):
        check_parse(code)
Ejemplo n.º 56
0
def test_multilline_num(line1):
    code = line1 + '\nls -l\n'
    tree = check_parse(code)
    lsnode = tree.body[1]
    assert 2 == min_line(lsnode)
    assert isinstance(lsnode.value, Call)
Ejemplo n.º 57
0
def test_command_in_func():
    code = "def f():\n" "    echo hello\n"
    assert check_parse(code)
Ejemplo n.º 58
0
def test_lookup_alias():
    code = (
        'def foo(a,  s=None):\n'
        '    return "bar"\n'
        '@(foo)\n')
    assert check_parse(code)
Ejemplo n.º 59
0
def test_pyeval_redirect():
    code = 'echo @("foo") > bar\n'
    assert check_parse(code)
Ejemplo n.º 60
0
def test_which_ls():
    assert check_parse('which ls')