]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.11] gh-95675: fix uid and gid at test_add_dir_getmember (gh-102207) (gh-102231)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sat, 25 Feb 2023 02:55:48 +0000 (18:55 -0800)
committerGitHub <noreply@github.com>
Sat, 25 Feb 2023 02:55:48 +0000 (11:55 +0900)
gh-95675: fix uid and gid at test_add_dir_getmember (gh-102207)
(cherry picked from commit 56e93c8020e89e1712aa238574bca2076a225028)

Co-authored-by: Seonkyo Ok <seonkyo.ok@linecorp.com>
Lib/test/test_tarfile.py
Misc/ACKS

index 7a0830f68602b20881f120e8bef57a68a4dc5d48..bde105f78a821d15115f65c4bfe267e633ac3a00 100644 (file)
@@ -225,18 +225,19 @@ class UstarReadTest(ReadTest, unittest.TestCase):
         self.add_dir_and_getmember('bar')
         self.add_dir_and_getmember('a'*101)
 
-    @unittest.skipIf(
-        (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."
-    )
+    @unittest.skipUnless(hasattr(os, "getuid") and hasattr(os, "getgid"),
+                         "Missing getuid or getgid implementation")
     def add_dir_and_getmember(self, name):
+        def filter(tarinfo):
+            tarinfo.uid = tarinfo.gid = 100
+            return tarinfo
+
         with os_helper.temp_cwd():
             with tarfile.open(tmpname, 'w') as tar:
                 tar.format = tarfile.USTAR_FORMAT
                 try:
                     os.mkdir(name)
-                    tar.add(name)
+                    tar.add(name, filter=filter)
                 finally:
                     os.rmdir(name)
             with tarfile.open(tmpname) as tar:
index 95e0589076c6354fa7137d50a384555907266a17..22df1b998fb15ac79adceba019e5b0e62f859cf9 100644 (file)
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1297,6 +1297,7 @@ Jon Oberheide
 Milan Oberkirch
 Pascal Oberndoerfer
 Géry Ogam
+Seonkyo Ok
 Jeffrey Ollie
 Adam Olsen
 Bryan Olson