mirror of
https://github.com/python/cpython.git
synced 2025-08-30 21:48:47 +00:00
This patch changes a few of the scripts to have __name__=='__main__' clauses so that they are importable without running. Also fixes the syntax errors revealed by the tests.
This commit is contained in:
parent
b6046301ef
commit
54ac832a24
7 changed files with 128 additions and 82 deletions
|
@ -5,6 +5,7 @@ Tools directory of a Python checkout or tarball, such as reindent.py.
|
|||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import unittest
|
||||
import sysconfig
|
||||
from test import support
|
||||
|
@ -17,10 +18,11 @@ if not sysconfig.is_python_build():
|
|||
|
||||
srcdir = sysconfig.get_config_var('projectbase')
|
||||
basepath = os.path.join(os.getcwd(), srcdir, 'Tools')
|
||||
scriptsdir = os.path.join(basepath, 'scripts')
|
||||
|
||||
|
||||
class ReindentTests(unittest.TestCase):
|
||||
script = os.path.join(basepath, 'scripts', 'reindent.py')
|
||||
script = os.path.join(scriptsdir, 'reindent.py')
|
||||
|
||||
def test_noargs(self):
|
||||
assert_python_ok(self.script)
|
||||
|
@ -31,8 +33,47 @@ class ReindentTests(unittest.TestCase):
|
|||
self.assertGreater(err, b'')
|
||||
|
||||
|
||||
class TestSundryScripts(unittest.TestCase):
|
||||
# At least make sure the rest don't have syntax errors. When tests are
|
||||
# added for a script it should be added to the whitelist below.
|
||||
|
||||
# scripts that have independent tests.
|
||||
whitelist = ['reindent.py']
|
||||
# scripts that can't be imported without running
|
||||
blacklist = ['make_ctype.py']
|
||||
# scripts that use windows-only modules
|
||||
windows_only = ['win_add2path.py']
|
||||
# blacklisted for other reasons
|
||||
other = ['analyze_dxp.py']
|
||||
|
||||
skiplist = blacklist + whitelist + windows_only + other
|
||||
|
||||
def setUp(self):
|
||||
cm = support.DirsOnSysPath(scriptsdir)
|
||||
cm.__enter__()
|
||||
self.addCleanup(cm.__exit__)
|
||||
|
||||
def test_sundry(self):
|
||||
for fn in os.listdir(scriptsdir):
|
||||
if fn.endswith('.py') and fn not in self.skiplist:
|
||||
__import__(fn[:-3])
|
||||
|
||||
@unittest.skipIf(sys.platform != "win32", "Windows-only test")
|
||||
def test_sundry_windows(self):
|
||||
for fn in self.windows_only:
|
||||
__import__(fn[:-3])
|
||||
|
||||
def test_analyze_dxp_import(self):
|
||||
if hasattr(sys, 'getdxp'):
|
||||
import analyze_dxp
|
||||
else:
|
||||
with self.assertRaises(RuntimeError):
|
||||
import analyze_dxp
|
||||
|
||||
|
||||
def test_main():
|
||||
support.run_unittest(ReindentTests)
|
||||
support.run_unittest(*[obj for obj in globals().values()
|
||||
if isinstance(obj, type)])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue