Issue #17753: Skip test_zipfile tests which require write access to test

and email.test.
This commit is contained in:
Serhiy Storchaka 2015-02-14 23:06:42 +02:00
commit 2307287c92
1 changed files with 8 additions and 0 deletions

View File

@ -679,7 +679,12 @@ class PyZipFileTests(unittest.TestCase):
if name + 'o' not in namelist: if name + 'o' not in namelist:
self.assertIn(name + 'c', namelist) self.assertIn(name + 'c', namelist)
def requiresWriteAccess(self, path):
if not os.access(path, os.W_OK, effective_ids=True):
self.skipTest('requires write access to the installed location')
def test_write_pyfile(self): def test_write_pyfile(self):
self.requiresWriteAccess(os.path.dirname(__file__))
with TemporaryFile() as t, zipfile.PyZipFile(t, "w") as zipfp: with TemporaryFile() as t, zipfile.PyZipFile(t, "w") as zipfp:
fn = __file__ fn = __file__
if fn.endswith('.pyc') or fn.endswith('.pyo'): if fn.endswith('.pyc') or fn.endswith('.pyo'):
@ -711,6 +716,7 @@ class PyZipFileTests(unittest.TestCase):
def test_write_python_package(self): def test_write_python_package(self):
import email import email
packagedir = os.path.dirname(email.__file__) packagedir = os.path.dirname(email.__file__)
self.requiresWriteAccess(packagedir)
with TemporaryFile() as t, zipfile.PyZipFile(t, "w") as zipfp: with TemporaryFile() as t, zipfile.PyZipFile(t, "w") as zipfp:
zipfp.writepy(packagedir) zipfp.writepy(packagedir)
@ -724,6 +730,7 @@ class PyZipFileTests(unittest.TestCase):
def test_write_filtered_python_package(self): def test_write_filtered_python_package(self):
import test import test
packagedir = os.path.dirname(test.__file__) packagedir = os.path.dirname(test.__file__)
self.requiresWriteAccess(packagedir)
with TemporaryFile() as t, zipfile.PyZipFile(t, "w") as zipfp: with TemporaryFile() as t, zipfile.PyZipFile(t, "w") as zipfp:
@ -752,6 +759,7 @@ class PyZipFileTests(unittest.TestCase):
def test_write_with_optimization(self): def test_write_with_optimization(self):
import email import email
packagedir = os.path.dirname(email.__file__) packagedir = os.path.dirname(email.__file__)
self.requiresWriteAccess(packagedir)
# use .pyc if running test in optimization mode, # use .pyc if running test in optimization mode,
# use .pyo if running test in debug mode # use .pyo if running test in debug mode
optlevel = 1 if __debug__ else 0 optlevel = 1 if __debug__ else 0