コード例 #1
0
def test_add_missing_open_quote_in_function_call():
    file_name = TEST_CODE_DIR + 'function_call_no_open_quote.py'
    code_in, error = read_and_parse_error(file_name)
    code_out = fuzzy_fix_syntax_error(code_in, error)

    expected = """
val = foo("string")
    """.strip()
    assert code_out == expected

    code_in = code_in.replace("\"", "'")
    expected = expected.replace("\"", "'")
    code_out = fuzzy_fix_syntax_error(code_in, error)
    assert code_out == expected
コード例 #2
0
def test_add_missing_open_quote_in_function_param():
    file_name = TEST_CODE_DIR + 'function_param_no_open_quote.py'
    code_in, error = read_and_parse_error(file_name)
    code_out = fuzzy_fix_syntax_error(code_in, error)

    expected = """
def foo(v1, v2="string"):
    return v1 == v2
    """.strip()
    assert code_out == expected

    code_in = code_in.replace("\"", "'")
    expected = expected.replace("\"", "'")
    code_out = fuzzy_fix_syntax_error(code_in, error)
    assert code_out == expected
コード例 #3
0
def test_add_missing_empty_string_quote_in_string_append():
    file_name = TEST_CODE_DIR + 'string_append_empty_string_missing_quote.py'
    code_in, error = read_and_parse_error(file_name)
    code_out = fuzzy_fix_syntax_error(code_in, error)

    expected = """
mystr = "string"
mystr += ""
    """.strip()
    assert code_out == expected

    code_in = code_in.replace("\"", "'")
    expected = expected.replace("\"", "'")
    code_out = fuzzy_fix_syntax_error(code_in, error)
    assert code_out == expected
コード例 #4
0
def test_add_missing_colon_at_if_end():
    file_name = TEST_CODE_DIR + 'if_no_colon.py'
    code_in, error = read_and_parse_error(file_name)
    code_out = fuzzy_fix_syntax_error(code_in, error)

    expected = 'if True:\n    print(\'hi\')'
    assert code_out == expected
コード例 #5
0
def test_add_missing_colon_at_function_end():
    file_name = TEST_CODE_DIR + 'function_no_colon.py'
    code_in, error = read_and_parse_error(file_name)
    code_out = fuzzy_fix_syntax_error(code_in, error)

    expected = code_in.rstrip() + ':'
    assert code_out == expected
コード例 #6
0
def test_add_missing_open_quote_in_if():
    file_name = TEST_CODE_DIR + 'if_no_open_quote.py'
    code_in, error = read_and_parse_error(file_name)
    code_out = fuzzy_fix_syntax_error(code_in, error)

    expected = """
mystr = "string"

if mystr == "string":
    return True
    """.strip()
    assert code_out == expected

    code_in = code_in.replace("\"", "'")
    expected = expected.replace("\"", "'")
    code_out = fuzzy_fix_syntax_error(code_in, error)
    assert code_out == expected
コード例 #7
0
def test_swap_incorrect_plus_in_string_addition():
    file_name = TEST_CODE_DIR + 'string_addition_incorrect_plus.py'
    code_in, error = read_and_parse_error(file_name)
    code_out = fuzzy_fix_syntax_error(code_in, error)

    expected = """
"str" + "str"
    """.strip()
    assert code_out == expected
コード例 #8
0
def test_swap_incorrect_parens():
    file_name = TEST_CODE_DIR + 'function_def_incorrect_parens.py'
    code_in, error = read_and_parse_error(file_name)
    code_out = fuzzy_fix_syntax_error(code_in, error)

    expected = """
def foo(var1, var2):
    return var1 <= var2
    """.strip()
    assert code_out == expected
コード例 #9
0
def test_add_missing_colon_at_elif_end():
    file_name = TEST_CODE_DIR + 'elif_no_colon.py'
    code_in, error = read_and_parse_error(file_name)
    code_out = fuzzy_fix_syntax_error(code_in, error)

    expected = """
if True:
    print('hi')
elif False:
    print('bye')
    """.strip()
    assert code_out == expected