From f914ac4620d3fe3fbfb69234a4dcbb58758f502a Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Wed, 8 Jun 2022 20:49:52 +0200 Subject: [PATCH 1/2] gh-79096: Fix/improve http cookiejar tests Fixup of GH-93463: - remove stray print - use proper way to check file mode - add working chmod decorator --- Lib/test/test_http_cookiejar.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Lib/test/test_http_cookiejar.py b/Lib/test/test_http_cookiejar.py index 3988bf864fb04b..7d8ee1857a337c 100644 --- a/Lib/test/test_http_cookiejar.py +++ b/Lib/test/test_http_cookiejar.py @@ -1,6 +1,7 @@ """Tests for http/cookiejar.py.""" import os +import stat import sys import re import test.support @@ -371,6 +372,7 @@ def test_lwp_valueless_cookie(self): self.assertEqual(c._cookies["www.acme.com"]["/"]["boo"].value, None) @unittest.skipIf(mswindows, "windows file permissions are incompatible with file modes") + @os_helper.skip_unless_working_chmod def test_lwp_filepermissions(self): # Cookie file should only be readable by the creator filename = os_helper.TESTFN @@ -378,14 +380,13 @@ def test_lwp_filepermissions(self): interact_netscape(c, "http://www.acme.com/", 'boo') try: c.save(filename, ignore_discard=True) - status = os.stat(filename) - print(status.st_mode) - self.assertEqual(oct(status.st_mode)[-3:], '600') + st = os.stat(filename) + self.assertEqual(stat.S_IMODE(st.st_mode), 0o600) finally: - try: os.unlink(filename) - except OSError: pass + test.support.unlink(filename) @unittest.skipIf(mswindows, "windows file permissions are incompatible with file modes") + @os_helper.skip_unless_working_chmod def test_mozilla_filepermissions(self): # Cookie file should only be readable by the creator filename = os_helper.TESTFN @@ -393,11 +394,10 @@ def test_mozilla_filepermissions(self): interact_netscape(c, "http://www.acme.com/", 'boo') try: c.save(filename, ignore_discard=True) - status = os.stat(filename) - self.assertEqual(oct(status.st_mode)[-3:], '600') + st = os.stat(filename) + self.assertEqual(stat.S_IMODE(st.st_mode), 0o600) finally: - try: os.unlink(filename) - except OSError: pass + test.support.unlink(filename) def test_bad_magic(self): # OSErrors (eg. file doesn't exist) are allowed to propagate From 7caeea37660a486333d39457ec4105a59594ffe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Langa?= Date: Wed, 8 Jun 2022 21:52:36 +0200 Subject: [PATCH 2/2] Use `os_helper.unlink` instead --- Lib/test/test_http_cookiejar.py | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/Lib/test/test_http_cookiejar.py b/Lib/test/test_http_cookiejar.py index 7d8ee1857a337c..f0d205a60a4cad 100644 --- a/Lib/test/test_http_cookiejar.py +++ b/Lib/test/test_http_cookiejar.py @@ -367,8 +367,7 @@ def test_lwp_valueless_cookie(self): c = LWPCookieJar() c.load(filename, ignore_discard=True) finally: - try: os.unlink(filename) - except OSError: pass + os_helper.unlink(filename) self.assertEqual(c._cookies["www.acme.com"]["/"]["boo"].value, None) @unittest.skipIf(mswindows, "windows file permissions are incompatible with file modes") @@ -383,7 +382,7 @@ def test_lwp_filepermissions(self): st = os.stat(filename) self.assertEqual(stat.S_IMODE(st.st_mode), 0o600) finally: - test.support.unlink(filename) + os_helper.unlink(filename) @unittest.skipIf(mswindows, "windows file permissions are incompatible with file modes") @os_helper.skip_unless_working_chmod @@ -397,7 +396,7 @@ def test_mozilla_filepermissions(self): st = os.stat(filename) self.assertEqual(stat.S_IMODE(st.st_mode), 0o600) finally: - test.support.unlink(filename) + os_helper.unlink(filename) def test_bad_magic(self): # OSErrors (eg. file doesn't exist) are allowed to propagate @@ -422,8 +421,7 @@ def test_bad_magic(self): c = cookiejar_class() self.assertRaises(LoadError, c.load, filename) finally: - try: os.unlink(filename) - except OSError: pass + os_helper.unlink(filename) class CookieTests(unittest.TestCase): # XXX @@ -527,7 +525,7 @@ def test_missing_value(self): c = MozillaCookieJar(filename) c.revert(ignore_expires=True, ignore_discard=True) finally: - os.unlink(c.filename) + os_helper.unlink(c.filename) # cookies unchanged apart from lost info re. whether path was specified self.assertEqual( repr(c), @@ -1797,8 +1795,7 @@ def test_rejection(self): c = LWPCookieJar(policy=pol) c.load(filename, ignore_discard=True) finally: - try: os.unlink(filename) - except OSError: pass + os_helper.unlink(filename) self.assertEqual(old, repr(c)) @@ -1857,8 +1854,7 @@ def save_and_restore(cj, ignore_discard): DefaultCookiePolicy(rfc2965=True)) new_c.load(ignore_discard=ignore_discard) finally: - try: os.unlink(filename) - except OSError: pass + os_helper.unlink(filename) return new_c new_c = save_and_restore(c, True)