]> granicus.if.org Git - python/commitdiff
you can't get resource.error if you can't import resource
authorBenjamin Peterson <benjamin@python.org>
Sat, 10 Dec 2011 17:31:42 +0000 (12:31 -0500)
committerBenjamin Peterson <benjamin@python.org>
Sat, 10 Dec 2011 17:31:42 +0000 (12:31 -0500)
Lib/test/test_subprocess.py

index 1aa2c0a41fe93fb517c6c4b273e8c52d44ef159c..b66356ddbf8d39b3e353fb91908d2d75eb3a778c 100644 (file)
@@ -10,6 +10,11 @@ import time
 import re
 import sysconfig
 
+try:
+    import resource
+except ImportError:
+    resource = None
+
 mswindows = (sys.platform == "win32")
 
 #
@@ -633,12 +638,12 @@ class _SuppressCoreFiles(object):
 
     def __enter__(self):
         """Try to save previous ulimit, then set it to (0, 0)."""
-        try:
-            import resource
-            self.old_limit = resource.getrlimit(resource.RLIMIT_CORE)
-            resource.setrlimit(resource.RLIMIT_CORE, (0, 0))
-        except (ImportError, ValueError, resource.error):
-            pass
+        if resource is not None:
+            try:
+                self.old_limit = resource.getrlimit(resource.RLIMIT_CORE)
+                resource.setrlimit(resource.RLIMIT_CORE, (0, 0))
+            except (ValueError, resource.error):
+                pass
 
         if sys.platform == 'darwin':
             # Check if the 'Crash Reporter' on OSX was configured
@@ -658,11 +663,11 @@ class _SuppressCoreFiles(object):
         """Return core file behavior to default."""
         if self.old_limit is None:
             return
-        try:
-            import resource
-            resource.setrlimit(resource.RLIMIT_CORE, self.old_limit)
-        except (ImportError, ValueError, resource.error):
-            pass
+        if resource is not None:
+            try:
+                resource.setrlimit(resource.RLIMIT_CORE, self.old_limit)
+            except (ValueError, resource.error):
+                pass
 
     @unittest.skipUnless(hasattr(signal, 'SIGALRM'),
                          "Requires signal.SIGALRM")