]> granicus.if.org Git - python/commitdiff
Issue #13308: Fix test_httpservers failures when run as root.
authorCharles-François Natali <neologix@free.fr>
Wed, 2 Nov 2011 18:32:54 +0000 (19:32 +0100)
committerCharles-François Natali <neologix@free.fr>
Wed, 2 Nov 2011 18:32:54 +0000 (19:32 +0100)
Lib/test/test_httpservers.py

index 3de0923efe35977fce330751163814cb3f5df0bb..97abdf569292756173029b2ffb120763ff39f4dd 100644 (file)
@@ -324,8 +324,10 @@ class SimpleHTTPServerTestCase(BaseTestCase):
         f = open(os.path.join(self.tempdir_name, 'index.html'), 'w')
         response = self.request('/' + self.tempdir_name + '/')
         self.check_status_and_reason(response, 200)
-        if os.name == 'posix':
-            # chmod won't work as expected on Windows platforms
+
+        # chmod() doesn't work as expected on Windows, and filesystem
+        # permissions are ignored by root on Unix.
+        if os.name == 'posix' and os.geteuid() != 0:
             os.chmod(self.tempdir, 0)
             response = self.request(self.tempdir_name + '/')
             self.check_status_and_reason(response, 404)
@@ -370,6 +372,9 @@ print "%%s, %%s, %%s" %% (form.getfirst("spam"), form.getfirst("eggs"),
                           form.getfirst("bacon"))
 """
 
+
+@unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0,
+        "This test can't be run reliably as root (issue #13308).")
 class CGIHTTPServerTestCase(BaseTestCase):
     class request_handler(NoLogRequestHandler, CGIHTTPRequestHandler):
         pass