Skip to content

Commit 8c60758

Browse files
committed
Add API tests
1 parent f9609fb commit 8c60758

1 file changed

Lines changed: 71 additions & 0 deletions

File tree

testsuite/test_all.py

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,80 @@ def test_own_dog_food(self):
4343
msg='Failures: %s' % report.messages)
4444

4545

46+
class APITestCase(unittest.TestCase):
47+
48+
def setUp(self):
49+
self._saved_checks = pep8._checks
50+
pep8._checks = dict((k, dict((f, (vals[0][:], vals[1]))
51+
for (f, vals) in v.items()))
52+
for (k, v) in self._saved_checks.items())
53+
54+
def tearDown(self):
55+
pep8._checks = self._saved_checks
56+
57+
def test_register_physical_check(self):
58+
def check_dummy(physical_line, line_number):
59+
if False:
60+
yield
61+
pep8.register_check(check_dummy, ['Z001'])
62+
63+
self.assertTrue(check_dummy in pep8._checks['physical_line'])
64+
codes, args = pep8._checks['physical_line'][check_dummy]
65+
self.assertTrue('Z001' in codes)
66+
self.assertEqual(args, ['physical_line', 'line_number'])
67+
68+
def test_register_logical_check(self):
69+
def check_dummy(logical_line, tokens):
70+
if False:
71+
yield
72+
pep8.register_check(check_dummy, ['Z401'])
73+
74+
self.assertTrue(check_dummy in pep8._checks['logical_line'])
75+
codes, args = pep8._checks['logical_line'][check_dummy]
76+
self.assertTrue('Z401' in codes)
77+
self.assertEqual(args, ['logical_line', 'tokens'])
78+
79+
def test_register_ast_check(self):
80+
class DummyChecker(object):
81+
def __init__(self, tree, filename):
82+
pass
83+
84+
def run(self):
85+
if False:
86+
yield
87+
pep8.register_check(DummyChecker, ['Z701'])
88+
89+
self.assertTrue(DummyChecker in pep8._checks['tree'])
90+
codes, args = pep8._checks['tree'][DummyChecker]
91+
self.assertTrue('Z701' in codes)
92+
self.assertTrue(args is None)
93+
94+
def test_register_invalid_check(self):
95+
class DummyChecker(object):
96+
def __init__(self, filename):
97+
pass
98+
99+
def run(self):
100+
if False:
101+
yield
102+
pep8.register_check(DummyChecker, ['Z741'])
103+
104+
def check_dummy(logical, tokens):
105+
if False:
106+
yield
107+
pep8.register_check(check_dummy, ['Z441'])
108+
109+
for checkers in pep8._checks.values():
110+
self.assertTrue(DummyChecker not in checkers)
111+
self.assertTrue(check_dummy not in checkers)
112+
113+
self.assertRaises(TypeError, pep8.register_check)
114+
115+
46116
def _main():
47117
suite = unittest.TestSuite()
48118
suite.addTest(unittest.makeSuite(Pep8TestCase))
119+
suite.addTest(unittest.makeSuite(APITestCase))
49120
runner = unittest.TextTestRunner(verbosity=2)
50121
return runner.run(suite)
51122

0 commit comments

Comments
 (0)