예제 #1
0
def test_I101_google_style():
    base_path = os.path.dirname(__file__)
    test_case_path = os.path.join(base_path, "test_cases")
    fullpath = os.path.join(test_case_path, "bad_order_google.py")
    data = open(fullpath).read()
    tree = ast.parse(data, fullpath)

    argv = [
        "--application-import-names=flake8_import_order,tests",
        "--import-order-style=google",
    ]

    parser = pep8.get_parser('', '')
    Linter.add_options(parser)
    options, args = parser.parse_args(argv)
    Linter.parse_options(options)

    checker = Linter(tree, fullpath)
    codes = []
    messages = []
    for lineno, col_offset, msg, instance in checker.run():
        code, message = msg.split(" ", 1)
        codes.append(code)
        messages.append(message)
    assert codes == ["I101"]
    assert messages == [
        "Imported names are in the wrong order. Should be A, c, D"
    ]
예제 #2
0
def test_expected_error(tree, filename, expected):
    parser = pep8.get_parser('', '')
    Linter.add_options(parser)
    options, args = parser.parse_args(
        ['--import-order-style=google'] if 'google' in filename else [])
    Linter.parse_options(options)

    checker = Linter(tree, filename)
    errors = []
    for lineno, col_offset, msg, instance in checker.run():
        errors.append(msg.split()[0])
    assert errors == expected
def test_linter():
    argv = ['--application-import-names=flake8_import_order']
    parser = pycodestyle.get_parser('', '')
    Linter.add_options(parser)
    options, args = parser.parse_args(argv)
    Linter.parse_options(options)

    data = 'import ast\nimport flake8_import_order\n'
    pycodestyle.stdin_get_value = lambda: data
    tree = ast.parse(data)
    checker = Linter(tree, None)
    for lineno, col_offset, msg, instance in checker.run():
        assert msg == 'I201 Missing newline before sections or imports.'
예제 #4
0
def test_expected_error(tree, filename, expected_codes, expected_messages):
    argv = ["--application-import-names=flake8_import_order,tests"]

    if 'google' in filename:
        argv.append('--import-order-style=google')

    parser = pep8.get_parser('', '')
    Linter.add_options(parser)
    options, args = parser.parse_args(argv)
    Linter.parse_options(options)

    checker = Linter(tree, filename)
    codes = []
    messages = []
    for lineno, col_offset, msg, instance in checker.run():
        code, message = msg.split(" ", 1)
        codes.append(code)
        messages.append(message)
    assert codes == expected_codes
    assert set(messages) >= set(expected_messages)
예제 #5
0
def _get_linter(argv, code, filename):
    parser = pycodestyle.get_parser('', '')
    Linter.add_options(parser)
    options, args = parser.parse_args(argv)
    Linter.parse_options(options)
    return Linter(ast.parse(code, filename), str(filename))