]> granicus.if.org Git - python/commitdiff
Rearrange test_socket_ssl so that a skip is expected iff the network
authorTim Peters <tim.peters@gmail.com>
Wed, 4 Dec 2002 03:26:57 +0000 (03:26 +0000)
committerTim Peters <tim.peters@gmail.com>
Wed, 4 Dec 2002 03:26:57 +0000 (03:26 +0000)
resource isn't enabled or the socket module doesn't support ssl.

Lib/test/regrtest.py
Lib/test/test_socket_ssl.py
Lib/test/test_support.py

index ffdea0674c3a140917e1ac545ca59a653ed4355f..75f8230dbba5eaa6562e081a2963edd1365b01de 100755 (executable)
@@ -534,6 +534,9 @@ def printlist(x, width=70, indent=4):
 #         Whether a skip is expected here depends on whether a large test
 #         input file has been downloaded.  test_normalization.skip_expected
 #         controls that.
+#     test_socket_ssl
+#         Controlled by test_socket_ssl.skip_expected.  Requires the network
+#         resource, and a socket module with ssl support.
 
 _expectations = {
     'win32':
@@ -565,7 +568,6 @@ _expectations = {
         test_pwd
         test_resource
         test_signal
-        test_socket_ssl
         test_socketserver
         test_sunaudiodev
         test_timing
@@ -583,7 +585,6 @@ _expectations = {
         test_largefile
         test_nis
         test_ntpath
-        test_socket_ssl
         test_socketserver
         test_sunaudiodev
         test_unicode_file
@@ -618,7 +619,6 @@ _expectations = {
         test_pty
         test_pwd
         test_signal
-        test_socket_ssl
         test_socketserver
         test_sunaudiodev
         test_sundry
@@ -736,7 +736,6 @@ _expectations = {
         test_popen2
         test_pty
         test_pwd
-        test_socket_ssl
         test_socketserver
         test_strop
         test_sunaudiodev
@@ -769,7 +768,6 @@ _expectations = {
         test_nis
         test_ntpath
         test_poll
-        test_socket_ssl
         test_socketserver
         test_sunaudiodev
         test_unicode_file
@@ -792,7 +790,6 @@ _expectations = {
         test_linuxaudiodev
         test_mpz
         test_openpty
-        test_socket_ssl
         test_socketserver
         test_winreg
         test_winsound
@@ -820,7 +817,6 @@ _expectations = {
         test_openpty
         test_pyexpat
         test_sax
-        test_socket_ssl
         test_socketserver
         test_sunaudiodev
         test_unicode_file
@@ -850,7 +846,6 @@ _expectations = {
         test_poll
         test_popen2
         test_resource
-        test_socket_ssl
         test_socketserver
         test_sunaudiodev
         test_unicode_file
@@ -863,6 +858,7 @@ class _ExpectedSkips:
     def __init__(self):
         import os.path
         from test import test_normalization
+        from test import test_socket_ssl
 
         self.valid = False
         if sys.platform in _expectations:
@@ -875,6 +871,9 @@ class _ExpectedSkips:
             if test_normalization.skip_expected:
                 self.expected.add('test_normalization')
 
+            if test_socket_ssl.skip_expected:
+                self.expected.add('test_socket_ssl')
+
             self.valid = True
 
     def isvalid(self):
index 9c0d8cce39962088351de197fc3637d9528526e8..eb00b9bef1b4c7ed99d4398666ebfb78848222d9 100644 (file)
@@ -1,27 +1,32 @@
 # Test just the SSL support in the socket module, in a moderately bogus way.
 
 from test import test_support
+import socket
 
-# Optionally test SSL support.  This currently requires the 'network' resource
-# as given on the regrtest command line.  If not available, nothing after this
-# line will be executed.
-test_support.requires('network')
+# Optionally test SSL support.  This requires the 'network' resource as given
+# on the regrtest command line.
+skip_expected = not (test_support.is_resource_enabled('network') and
+                     hasattr(socket, "ssl"))
 
-import socket
-if not hasattr(socket, "ssl"):
-    raise test_support.TestSkipped("socket module has no ssl support")
+def test_main():
+    test_support.requires('network')
+    if not hasattr(socket, "ssl"):
+        raise test_support.TestSkipped("socket module has no ssl support")
+
+    import urllib
 
-import urllib
+    socket.RAND_status()
+    try:
+        socket.RAND_egd(1)
+    except TypeError:
+        pass
+    else:
+        print "didn't raise TypeError"
+    socket.RAND_add("this is a random string", 75.0)
 
-socket.RAND_status()
-try:
-    socket.RAND_egd(1)
-except TypeError:
-    pass
-else:
-    print "didn't raise TypeError"
-socket.RAND_add("this is a random string", 75.0)
+    f = urllib.urlopen('https://sf.net')
+    buf = f.read()
+    f.close()
 
-f = urllib.urlopen('https://sf.net')
-buf = f.read()
-f.close()
+if __name__ == "__main__":
+    test_main()
index 075d83b94ae7b8ce60b02b714dcef62134261bca..81695330d2574e3d317170941a2edb89eec1ee93 100644 (file)
@@ -50,8 +50,11 @@ def forget(modname):
         except os.error:
             pass
 
+def is_resource_enabled(resource):
+    return use_resources is not None and resource in use_resources
+
 def requires(resource, msg=None):
-    if use_resources is not None and resource not in use_resources:
+    if not is_resource_enabled(resource):
         if msg is None:
             msg = "Use of the `%s' resource not enabled" % resource
         raise TestSkipped(msg)