]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-43316: gzip: CLI uses non-zero return code on error. (GH-24647)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Fri, 26 Feb 2021 01:13:17 +0000 (17:13 -0800)
committerGitHub <noreply@github.com>
Fri, 26 Feb 2021 01:13:17 +0000 (10:13 +0900)
Exit code is now 1 instead of 0. A message is printed to stderr instead of stdout. This is
the proper behaviour for a tool that can be used in scripts.
(cherry picked from commit cc3df6368d4f3f6c9c9b716876c7e7b79c7abf3f)

Co-authored-by: Ruben Vorderman <r.h.p.vorderman@lumc.nl>
Lib/gzip.py
Lib/test/test_gzip.py
Misc/NEWS.d/next/Library/2021-02-25-09-44-36.bpo-43316.k9Gyqn.rst [new file with mode: 0644]

index e422773b3edfb7082062b0b97f5a0833a04ade5e..8002b43bde97cda3d45f681fcc1143bb341b5335 100644 (file)
@@ -583,8 +583,7 @@ def main():
                 g = sys.stdout.buffer
             else:
                 if arg[-3:] != ".gz":
-                    print("filename doesn't end in .gz:", repr(arg))
-                    continue
+                    sys.exit("filename doesn't end in .gz:", repr(arg))
                 f = open(arg, "rb")
                 g = builtins.open(arg[:-3], "wb")
         else:
index 0f235d1805e0d3a1df9763460f78675ace9af6de..66ae51acbff54b4d9f1a39ab1404b1e6286f04f9 100644 (file)
@@ -772,10 +772,10 @@ class TestCommandLine(unittest.TestCase):
         self.assertEqual(err, b'')
 
     def test_decompress_infile_outfile_error(self):
-        rc, out, err = assert_python_ok('-m', 'gzip', '-d', 'thisisatest.out')
-        self.assertIn(b"filename doesn't end in .gz:", out)
-        self.assertEqual(rc, 0)
-        self.assertEqual(err, b'')
+        rc, out, err = assert_python_failure('-m', 'gzip', '-d', 'thisisatest.out')
+        self.assertIn(b"filename doesn't end in .gz:", err)
+        self.assertEqual(rc, 1)
+        self.assertEqual(out, b'')
 
     @create_and_remove_directory(TEMPDIR)
     def test_compress_stdin_outfile(self):
diff --git a/Misc/NEWS.d/next/Library/2021-02-25-09-44-36.bpo-43316.k9Gyqn.rst b/Misc/NEWS.d/next/Library/2021-02-25-09-44-36.bpo-43316.k9Gyqn.rst
new file mode 100644 (file)
index 0000000..1f0d3c4
--- /dev/null
@@ -0,0 +1,3 @@
+The ``python -m gzip`` command line application now properly fails when
+detecting an unsupported extension. It exits with a non-zero exit code and
+prints an error message to stderr.