import ast import pytest from pre_commit_hooks.debug_statement_hook import DebugStatement from pre_commit_hooks.debug_statement_hook import ImportStatementParser @pytest.fixture def ast_with_no_debug_imports(): return ast.parse(""" import foo import bar import baz from foo import bar """) @pytest.fixture def ast_with_debug_import_form_1(): return ast.parse(""" import ipdb; ipdb.set_trace() """) @pytest.fixture def ast_with_debug_import_form_2(): return ast.parse(""" from pudb import set_trace; set_trace() """) def test_returns_no_debug_statements(ast_with_no_debug_imports): visitor = ImportStatementParser() visitor.visit(ast_with_no_debug_imports) assert visitor.debug_import_statements == [] def test_returns_one_form_1(ast_with_debug_import_form_1): visitor = ImportStatementParser() visitor.visit(ast_with_debug_import_form_1) assert visitor.debug_import_statements == [ DebugStatement('ipdb', 3, 0) ] def test_returns_one_form_2(ast_with_debug_import_form_2): visitor = ImportStatementParser() visitor.visit(ast_with_debug_import_form_2) assert visitor.debug_import_statements == [ DebugStatement('pudb', 3, 0) ]