From b4ee4eb3b308d55bd0d8d5a1abb2015950934c77 Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Wed, 4 Dec 2002 03:26:57 +0000 Subject: [PATCH] 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. --- Lib/test/regrtest.py | 15 ++++++------- Lib/test/test_socket_ssl.py | 45 ++++++++++++++++++++----------------- Lib/test/test_support.py | 5 ++++- 3 files changed, 36 insertions(+), 29 deletions(-) diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index ffdea0674c3..75f8230dbba 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -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): diff --git a/Lib/test/test_socket_ssl.py b/Lib/test/test_socket_ssl.py index 9c0d8cce399..eb00b9bef1b 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 075d83b94ae..81695330d25 100644 --- a/Lib/test/test_support.py +++ b/Lib/test/test_support.py @@ -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)