From 2597aadec45120528a952a5e9e0ee058ed555f90 Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith" Date: Sat, 4 Feb 2023 16:59:18 -0800 Subject: [PATCH 1/5] gh-101334: Don't force USTAR format in test_tarfile. That causes the test to fail when run using a high UID as that ancient format cannot represent it. The current default (PAX) and the old default (GNU) both support high UIDs. --- Lib/test/test_tarfile.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py index 213932069201b9..f9995850955b10 100644 --- a/Lib/test/test_tarfile.py +++ b/Lib/test/test_tarfile.py @@ -228,7 +228,6 @@ def test_add_dir_getmember(self): def add_dir_and_getmember(self, name): with os_helper.temp_cwd(): with tarfile.open(tmpname, 'w') as tar: - tar.format = tarfile.USTAR_FORMAT try: os.mkdir(name) tar.add(name) From 5d4f43c3403a5b55f5fdff7c6f8ccccf890ac6a2 Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith" Date: Sat, 4 Feb 2023 17:24:36 -0800 Subject: [PATCH 2/5] NEWS --- .../next/Tests/2023-02-04-17-24-33.gh-issue-101334._yOqwg.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 Misc/NEWS.d/next/Tests/2023-02-04-17-24-33.gh-issue-101334._yOqwg.rst diff --git a/Misc/NEWS.d/next/Tests/2023-02-04-17-24-33.gh-issue-101334._yOqwg.rst b/Misc/NEWS.d/next/Tests/2023-02-04-17-24-33.gh-issue-101334._yOqwg.rst new file mode 100644 index 00000000000000..2a95fd9ae53c86 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2023-02-04-17-24-33.gh-issue-101334._yOqwg.rst @@ -0,0 +1 @@ +``test_tarfile`` has been updated to pass when run as a high UID. From b0bfa0e6f7b8b113646a61167b62a313b08ceb57 Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith" Date: Sun, 5 Feb 2023 00:28:23 -0800 Subject: [PATCH 3/5] re-add format to USTAR test, skip on high uid/gid. --- Lib/test/test_tarfile.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py index f9995850955b10..85aa3d6cb6a5cb 100644 --- a/Lib/test/test_tarfile.py +++ b/Lib/test/test_tarfile.py @@ -225,9 +225,14 @@ def test_add_dir_getmember(self): self.add_dir_and_getmember('bar') self.add_dir_and_getmember('a'*101) + @unittest.skipIf( + os.getuid() > 0o777_7777 or os.getgid() > 0o777_7777, + f"{os.getuid()=} or {os.getgid()=} too high for USTAR format." + ) def add_dir_and_getmember(self, name): with os_helper.temp_cwd(): with tarfile.open(tmpname, 'w') as tar: + tar.format = tarfile.USTAR_FORMAT try: os.mkdir(name) tar.add(name) From 5b8c07e140381cec279cf256d132df23e1332195 Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith" Date: Sun, 5 Feb 2023 00:30:49 -0800 Subject: [PATCH 4/5] - trailing space --- Lib/test/test_tarfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py index 85aa3d6cb6a5cb..389eaf72bd2a20 100644 --- a/Lib/test/test_tarfile.py +++ b/Lib/test/test_tarfile.py @@ -228,7 +228,7 @@ def test_add_dir_getmember(self): @unittest.skipIf( os.getuid() > 0o777_7777 or os.getgid() > 0o777_7777, f"{os.getuid()=} or {os.getgid()=} too high for USTAR format." - ) + ) def add_dir_and_getmember(self, name): with os_helper.temp_cwd(): with tarfile.open(tmpname, 'w') as tar: From 6aff621a8ffa64f4c2157786b89b16f689ddce3a Mon Sep 17 00:00:00 2001 From: "Gregory P. Smith" Date: Sun, 5 Feb 2023 00:55:29 -0800 Subject: [PATCH 5/5] fix skip logic for platforms w/o getuid and getgid. --- Lib/test/test_tarfile.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py index 389eaf72bd2a20..f15a800976681c 100644 --- a/Lib/test/test_tarfile.py +++ b/Lib/test/test_tarfile.py @@ -226,8 +226,9 @@ def test_add_dir_getmember(self): self.add_dir_and_getmember('a'*101) @unittest.skipIf( - os.getuid() > 0o777_7777 or os.getgid() > 0o777_7777, - f"{os.getuid()=} or {os.getgid()=} too high for USTAR format." + (hasattr(os, 'getuid') and os.getuid() > 0o777_7777) or + (hasattr(os, 'getgid') and os.getgid() > 0o777_7777), + "uid or gid too high for USTAR format." ) def add_dir_and_getmember(self, name): with os_helper.temp_cwd():