]> granicus.if.org Git - python/commitdiff
Add test file for scripts in Tools (#13447).
authorÉric Araujo <merwok@netwok.org>
Sat, 25 Feb 2012 15:57:04 +0000 (16:57 +0100)
committerÉric Araujo <merwok@netwok.org>
Sat, 25 Feb 2012 15:57:04 +0000 (16:57 +0100)
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.

Lib/test/test_tools.py [new file with mode: 0644]

diff --git a/Lib/test/test_tools.py b/Lib/test/test_tools.py
new file mode 100644 (file)
index 0000000..1682124
--- /dev/null
@@ -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()