Download Install Tutorial Docs FAQ Tools WikiLicense Team IRC Planet Involvement Shop Book

Changeset 2454

Show
Ignore:
Timestamp:
06/15/09 23:06:32
Author:
fumanchu
Message:

python3: Fix for xmlrpc client in test.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/python3/cherrypy/test/test_xmlrpc.py

    r2156 r2454  
    7373 
    7474 
    75 class HTTPSTransport(xmlrpc.client.SafeTransport): 
    76     """Subclass of SafeTransport to fix sock.recv errors (by using file).""" 
    77      
    78     def request(self, host, handler, request_body, verbose=0): 
    79         # issue XML-RPC request 
    80         h = self.make_connection(host) 
    81         if verbose: 
    82             h.set_debuglevel(1) 
    83          
    84         self.send_request(h, handler, request_body) 
    85         self.send_host(h, host) 
    86         self.send_user_agent(h) 
    87         self.send_content(h, request_body) 
    88          
    89         errcode, errmsg, headers = h.getreply() 
    90         if errcode != 200: 
    91             raise xmlrpc.client.ProtocolError(host + handler, errcode, errmsg, 
    92                                           headers) 
    93          
    94         self.verbose = verbose 
    95          
    96         # Here's where we differ from the superclass. It says: 
    97         # try: 
    98         #     sock = h._conn.sock 
    99         # except AttributeError: 
    100         #     sock = None 
    101         # return self._parse_response(h.getfile(), sock) 
    102          
    103         return self.parse_response(h.getfile()) 
    104  
    105  
    10675from cherrypy.test import helper 
    10776 
     
    10978    def testXmlRpc(self): 
    11079         
    111         # load the appropriate xmlrpc proxy 
    112         scheme = "http" 
    113         try: 
    114             scheme = self.harness.scheme 
    115         except AttributeError: 
    116             pass 
    117          
    118         if scheme == "https": 
     80        if self.scheme == "https": 
    11981            url = 'https://%s:%s/xmlrpc/' % (self.interface(), self.PORT) 
    120             proxy = xmlrpc.client.ServerProxy(url, transport=HTTPSTransport()) 
     82            # Python 3.0's SafeTransport still mistakenly checks for socket.ssl 
     83            import socket 
     84            if not hasattr(socket, "ssl"): 
     85                socket.ssl = True 
     86            proxy = xmlrpc.client.ServerProxy(url, transport=xmlrpc.client.SafeTransport()) 
    12187        else: 
    12288            url = 'http://%s:%s/xmlrpc/' % (self.interface(), self.PORT) 

Hosted by WebFaction

Log in as guest/cpguest to create tickets