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

Changeset 319

Show
Ignore:
Timestamp:
06/16/05 00:44:26
Author:
fumanchu
Message:

1. New tutorial 11: file uploads.
2. test suite extended to handle POST tests.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/cherrypy/test/helper.py

    r315 r319  
    3131import sys 
    3232import socket 
     33import StringIO 
    3334import httplib 
    3435import threading 
     
    6869 
    6970 
    70 def getPage(url, headers=None, method="GET"): 
     71def getPage(url, headers=None, method="GET", body=None): 
    7172     
    7273    # The trying 10 times is simply in case of socket errors. 
     
    8283                conn.putheader(key, value) 
    8384            conn.endheaders() 
     85             
     86            if body is not None: 
     87                conn.send(body) 
    8488             
    8589            # Handle response 
     
    103107            cpg.response.headers = cpg.response.headerMap 
    104108             
    105             b = cpg.response.body = response.read() 
    106 ##            print "body:", repr(b) 
     109            cpg.response.body = response.read() 
    107110             
    108111            conn.close() 
     
    116119 
    117120 
    118 def request(url, headers=None, method="GET"): 
     121def request(url, headers=None, method="GET", body=None): 
    119122    if headers is None: 
    120123        headers = [] 
     
    129132        if not found: 
    130133            headers.append(("Host", "%s:%s" % (HOST, PORT))) 
    131         cpg.server.request(HOST, HOST, requestLine, headers, None) 
     134        if body is not None: 
     135            body = StringIO.StringIO(body) 
     136        cpg.server.request(HOST, HOST, requestLine, headers, body) 
    132137        cpg.response.body = "".join(cpg.response.body) 
    133138    else: 
    134         getPage(url, headers, method
     139        getPage(url, headers, method, body
    135140 
  • trunk/cherrypy/test/test_tutorials.py

    r315 r319  
    176176        helper.request('/', [('Cookie', dict(cpg.response.headers)['Set-Cookie'])]) 
    177177        self.assert_("viewed this page 2 times" in cpg.response.body) 
    178  
     178     
     179    def test11FileUpload(self): 
     180        load_tut_module("tut11_file_upload") 
     181         
     182        h = [("Content-type", "multipart/form-data; boundary=x"), 
     183             ("Content-Length", "110")] 
     184        b = """--x 
     185Content-Disposition: form-data; name="myFile"; filename="hello.txt" 
     186Content-Type: text/plain 
     187 
     188hello 
     189--x-- 
     190""" 
     191        helper.request('/upload', h, "POST", b) 
     192        self.assertEqual(cpg.response.body, ''' 
     193        <html><body> 
     194            myFile length: 5<br /> 
     195            myFile filename: hello.txt<br /> 
     196            myFile mime-type: text/plain 
     197        </body></html> 
     198        ''') 
    179199 
    180200if __name__ == "__main__": 

Hosted by WebFaction

Log in as guest/cpguest to create tickets