Simplify debug-statemetns tests

This commit is contained in:
Anthony Sottile 2018-05-13 15:07:31 -07:00
parent 904a06196d
commit 6e2e83a409
2 changed files with 12 additions and 55 deletions

View file

@ -1,5 +0,0 @@
def foo(obj):
import pdb; pdb.set_trace()
return 5

View file

@ -4,72 +4,34 @@ from __future__ import unicode_literals
import ast
import pytest
from pre_commit_hooks.debug_statement_hook import debug_statement_hook
from pre_commit_hooks.debug_statement_hook import DebugStatement
from pre_commit_hooks.debug_statement_hook import ImportStatementParser
from testing.util import get_resource_path
@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):
def test_no_debug_imports():
visitor = ImportStatementParser()
visitor.visit(ast_with_no_debug_imports)
visitor.visit(ast.parse('import os\nfrom foo import bar\n'))
assert visitor.debug_import_statements == []
def test_returns_one_form_1(ast_with_debug_import_form_1):
def test_finds_debug_import_attribute_access():
visitor = ImportStatementParser()
visitor.visit(ast_with_debug_import_form_1)
assert visitor.debug_import_statements == [
DebugStatement('ipdb', 3, 0),
]
visitor.visit(ast.parse('import ipdb; ipdb.set_trace()'))
assert visitor.debug_import_statements == [DebugStatement('ipdb', 1, 0)]
def test_returns_one_form_2(ast_with_debug_import_form_2):
def test_finds_debug_import_from_import():
visitor = ImportStatementParser()
visitor.visit(ast_with_debug_import_form_2)
assert visitor.debug_import_statements == [
DebugStatement('pudb', 3, 0),
]
visitor.visit(ast.parse('from pudb import set_trace; set_trace()'))
assert visitor.debug_import_statements == [DebugStatement('pudb', 1, 0)]
def test_returns_one_for_failing_file():
ret = debug_statement_hook([get_resource_path('file_with_debug.notpy')])
def test_returns_one_for_failing_file(tmpdir):
f_py = tmpdir.join('f.py')
f_py.write('def f():\n import pdb; pdb.set_trace()')
ret = debug_statement_hook([f_py.strpath])
assert ret == 1