summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_tools.py
diff options
context:
space:
mode:
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)
commitb46562480b350984e7e81693936d1ed471a96b46 (patch)
tree6de1341ba8d0248be1edb95730bd6e7acc05c437 /Lib/test/test_tools.py
parent2e0a0e1640e89bec7da985534411c464d3d30df2 (diff)
downloadcpython-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.
Diffstat (limited to 'Lib/test/test_tools.py')
-rw-r--r--Lib/test/test_tools.py39
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()