diff options
author | Éric Araujo <merwok@netwok.org> | 2012-02-25 15:57:04 (GMT) |
---|---|---|
committer | Éric Araujo <merwok@netwok.org> | 2012-02-25 15:57:04 (GMT) |
commit | b46562480b350984e7e81693936d1ed471a96b46 (patch) | |
tree | 6de1341ba8d0248be1edb95730bd6e7acc05c437 | |
parent | 2e0a0e1640e89bec7da985534411c464d3d30df2 (diff) | |
download | cpython-b46562480b350984e7e81693936d1ed471a96b46.zip cpython-b46562480b350984e7e81693936d1ed471a96b46.tar.gz cpython-b46562480b350984e7e81693936d1ed471a96b46.tar.bz2 |
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.
-rw-r--r-- | Lib/test/test_tools.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Lib/test/test_tools.py b/Lib/test/test_tools.py new file mode 100644 index 0000000..1682124 --- /dev/null +++ b/Lib/test/test_tools.py @@ -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() |