Rearrange test_socket_ssl so that a skip is expected iff the network
resource isn't enabled or the socket module doesn't support ssl.
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index ffdea06..75f8230 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -534,6 +534,9 @@
 #         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 @@
         test_pwd
         test_resource
         test_signal
-        test_socket_ssl
         test_socketserver
         test_sunaudiodev
         test_timing
@@ -583,7 +585,6 @@
         test_largefile
         test_nis
         test_ntpath
-        test_socket_ssl
         test_socketserver
         test_sunaudiodev
         test_unicode_file
@@ -618,7 +619,6 @@
         test_pty
         test_pwd
         test_signal
-        test_socket_ssl
         test_socketserver
         test_sunaudiodev
         test_sundry
@@ -736,7 +736,6 @@
         test_popen2
         test_pty
         test_pwd
-        test_socket_ssl
         test_socketserver
         test_strop
         test_sunaudiodev
@@ -769,7 +768,6 @@
         test_nis
         test_ntpath
         test_poll
-        test_socket_ssl
         test_socketserver
         test_sunaudiodev
         test_unicode_file
@@ -792,7 +790,6 @@
         test_linuxaudiodev
         test_mpz
         test_openpty
-        test_socket_ssl
         test_socketserver
         test_winreg
         test_winsound
@@ -820,7 +817,6 @@
         test_openpty
         test_pyexpat
         test_sax
-        test_socket_ssl
         test_socketserver
         test_sunaudiodev
         test_unicode_file
@@ -850,7 +846,6 @@
         test_poll
         test_popen2
         test_resource
-        test_socket_ssl
         test_socketserver
         test_sunaudiodev
         test_unicode_file
@@ -863,6 +858,7 @@
     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 @@
             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):
diff --git a/Lib/test/test_socket_ssl.py b/Lib/test/test_socket_ssl.py
index 9c0d8cc..eb00b9b 100644
--- a/Lib/test/test_socket_ssl.py
+++ b/Lib/test/test_socket_ssl.py
@@ -1,27 +1,32 @@
 # Test just the SSL support in the socket module, in a moderately bogus way.
 
 from test import test_support
-
-# 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')
-
 import socket
-if not hasattr(socket, "ssl"):
-    raise test_support.TestSkipped("socket module has no ssl support")
 
-import urllib
+# 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"))
 
-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)
+def test_main():
+    test_support.requires('network')
+    if not hasattr(socket, "ssl"):
+        raise test_support.TestSkipped("socket module has no ssl support")
 
-f = urllib.urlopen('https://sf.net')
-buf = f.read()
-f.close()
+    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)
+
+    f = urllib.urlopen('https://sf.net')
+    buf = f.read()
+    f.close()
+
+if __name__ == "__main__":
+    test_main()
diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py
index 075d83b..8169533 100644
--- a/Lib/test/test_support.py
+++ b/Lib/test/test_support.py
@@ -50,8 +50,11 @@
         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)