summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorChristian Heimes <christian@cheimes.de>2013-10-11 23:27:08 (GMT)
committerChristian Heimes <christian@cheimes.de>2013-10-11 23:27:08 (GMT)
commit2582762b1b76a9bbe11f8ba5fc2a350157526050 (patch)
tree2842450f57aa729c32fdba59c98558f0ad324650 /Lib/test
parent1a5fb4e3c1d99a0abbb9f1e9dd6f9322102ee812 (diff)
downloadcpython-2582762b1b76a9bbe11f8ba5fc2a350157526050.zip
cpython-2582762b1b76a9bbe11f8ba5fc2a350157526050.tar.gz
cpython-2582762b1b76a9bbe11f8ba5fc2a350157526050.tar.bz2
Issue #19209: Remove import of copyreg from the os module to speed up
interpreter startup. stat_result and statvfs_result are now hard-coded to reside in the os module. The patch is based on Victor Stinner's patch.
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test_os.py22
-rw-r--r--Lib/test/test_site.py5
2 files changed, 26 insertions, 1 deletions
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 39b0e80..ab44d01 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -26,6 +26,7 @@ import locale
import codecs
import decimal
import fractions
+import pickle
try:
import threading
except ImportError:
@@ -264,6 +265,13 @@ class StatAttributeTests(unittest.TestCase):
warnings.simplefilter("ignore", DeprecationWarning)
self.check_stat_attributes(fname)
+ def test_stat_result_pickle(self):
+ result = os.stat(self.fname)
+ p = pickle.dumps(result)
+ self.assertIn(b'\x03cos\nstat_result\n', p)
+ unpickled = pickle.loads(p)
+ self.assertEqual(result, unpickled)
+
def test_statvfs_attributes(self):
if not hasattr(os, "statvfs"):
return
@@ -310,6 +318,20 @@ class StatAttributeTests(unittest.TestCase):
except TypeError:
pass
+ @unittest.skipUnless(hasattr(os, 'statvfs'),
+ "need os.statvfs()")
+ def test_statvfs_result_pickle(self):
+ try:
+ result = os.statvfs(self.fname)
+ except OSError as e:
+ # On AtheOS, glibc always returns ENOSYS
+ if e.errno == errno.ENOSYS:
+ return
+ p = pickle.dumps(result)
+ self.assertIn(b'\x03cos\nstatvfs_result\n', p)
+ unpickled = pickle.loads(p)
+ self.assertEqual(result, unpickled)
+
def test_utime_dir(self):
delta = 1000000
st = os.stat(support.TESTFN)
diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py
index d260603..5147edc 100644
--- a/Lib/test/test_site.py
+++ b/Lib/test/test_site.py
@@ -431,10 +431,13 @@ class StartupImportTests(unittest.TestCase):
modules = eval(stdout.decode('utf-8'))
self.assertIn('site', modules)
+ # http://bugs.python.org/issue19205
re_mods = {'re', '_sre', 'sre_compile', 'sre_constants', 'sre_parse'}
self.assertFalse(modules.intersection(re_mods))
-
+ # http://bugs.python.org/issue9548
self.assertNotIn('locale', modules)
+ # http://bugs.python.org/issue19209
+ self.assertNotIn('copyreg', modules)
if __name__ == "__main__":