]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
#19532: make compileall with no file/dir args respect -f and -q.
authorR David Murray <rdmurray@bitdance.com>
Mon, 16 Dec 2013 01:49:38 +0000 (20:49 -0500)
committerR David Murray <rdmurray@bitdance.com>
Mon, 16 Dec 2013 01:49:38 +0000 (20:49 -0500)
Patch by Vajrasky Kok.

Lib/compileall.py
Lib/test/test_compileall.py
Misc/NEWS

index d3cff6a98ad2bb6943ae5d4bd1b399f2ee39395b..693eda97b132f5e8a9228184cae532f38a97e601 100644 (file)
@@ -228,7 +228,8 @@ def main():
                         success = False
             return success
         else:
-            return compile_path(legacy=args.legacy)
+            return compile_path(legacy=args.legacy, force=args.force,
+                                quiet=args.quiet)
     except KeyboardInterrupt:
         print("\n[interrupted]")
         return False
index fddb538efb172208c2489cef715f584abda1ca4d..0505c521d1c4857b08ab7325ba05543730c9ada7 100644 (file)
@@ -177,6 +177,29 @@ class CommandLineTests(unittest.TestCase):
         self.assertNotCompiled(self.initfn)
         self.assertNotCompiled(self.barfn)
 
+    def test_no_args_respects_force_flag(self):
+        bazfn = script_helper.make_script(self.directory, 'baz', '')
+        self.assertRunOK(PYTHONPATH=self.directory)
+        pycpath = imp.cache_from_source(bazfn)
+        # Set atime/mtime backward to avoid file timestamp resolution issues
+        os.utime(pycpath, (time.time()-60,)*2)
+        mtime = os.stat(pycpath).st_mtime
+        # Without force, no recompilation
+        self.assertRunOK(PYTHONPATH=self.directory)
+        mtime2 = os.stat(pycpath).st_mtime
+        self.assertEqual(mtime, mtime2)
+        # Now force it.
+        self.assertRunOK('-f', PYTHONPATH=self.directory)
+        mtime2 = os.stat(pycpath).st_mtime
+        self.assertNotEqual(mtime, mtime2)
+
+    def test_no_args_respects_quiet_flag(self):
+        script_helper.make_script(self.directory, 'baz', '')
+        noisy = self.assertRunOK(PYTHONPATH=self.directory)
+        self.assertIn(b'Listing ', noisy)
+        quiet = self.assertRunOK('-q', PYTHONPATH=self.directory)
+        self.assertNotIn(b'Listing ', quiet)
+
     # Ensure that the default behavior of compileall's CLI is to create
     # PEP 3147 pyc/pyo files.
     for name, ext, switch in [
index 60e741f8dd173e35a9cbfe9ab976f23ad2c2a8ed..73625f3a5a740f0de81692ff340ddc166ea3dd16 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -29,6 +29,9 @@ Core and Builtins
 Library
 -------
 
+- Issue #19532: python -m compileall with no filename/directory arguments now
+  respects the -f and -q flags instead of ignoring them.
+
 - Issue #19623: Fixed writing to unseekable files in the aifc module.
 
 - Issue #17919: select.poll.register() again works with poll.POLLNVAL on AIX.