Add test file for scripts in Tools (#13447).
When people find bugs in scripts such as reindent.py, msgfmt.py or pygettext.py, we have to try to reproduce the bug manually, apply a fix and test manually again. The alternative is to only read the code and trust that it works. This test file is a way to stop that unsatisfactory state of things and write proper unit tests instead.
This commit is contained in:
parent
2e0a0e1640
commit
b46562480b
|
@ -0,0 +1,39 @@
|
|||
"""Tests for scripts in the Tools directory.
|
||||
|
||||
This file contains regression tests for some of the scripts found in the
|
||||
Tools directory of a Python checkout or tarball, such as reindent.py.
|
||||
"""
|
||||
|
||||
import os
|
||||
import unittest
|
||||
import sysconfig
|
||||
from test import support
|
||||
from test.script_helper import assert_python_ok
|
||||
|
||||
if not sysconfig.is_python_build():
|
||||
# XXX some installers do contain the tools, should we detect that
|
||||
# and run the tests in that case too?
|
||||
raise unittest.SkipTest('test irrelevant for an installed Python')
|
||||
|
||||
srcdir = sysconfig.get_config_var('projectbase')
|
||||
basepath = os.path.join(os.getcwd(), srcdir, 'Tools')
|
||||
|
||||
|
||||
class ReindentTests(unittest.TestCase):
|
||||
script = os.path.join(basepath, 'scripts', 'reindent.py')
|
||||
|
||||
def test_noargs(self):
|
||||
assert_python_ok(self.script)
|
||||
|
||||
def test_help(self):
|
||||
rc, out, err = assert_python_ok(self.script, '-h')
|
||||
self.assertEqual(out, b'')
|
||||
self.assertGreater(err, b'')
|
||||
|
||||
|
||||
def test_main():
|
||||
support.run_unittest(ReindentTests)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
Loading…
Reference in New Issue