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:
Éric Araujo 2012-02-25 16:57:04 +01:00
parent 2e0a0e1640
commit b46562480b
1 changed files with 39 additions and 0 deletions

39
Lib/test/test_tools.py Normal file
View File

@ -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()