Ticket #17371: 17371-wip.patch

File 17371-wip.patch, 2.4 KB (added by Aymeric Augustin, 12 years ago)
  • django/test/client.py

     
    275275        return self.request(**r)
    276276
    277277    def options(self, path, data={}, **extra):
    278         "Constrict an OPTIONS request"
     278        "Construct an OPTIONS request"
     279        return self.generic('OPTIONS', path, data, content_type, **extra)
    279280
    280         parsed = urlparse(path)
    281         r = {
    282             'PATH_INFO':       self._get_path(parsed),
    283             'QUERY_STRING':    urlencode(data, doseq=True) or parsed[4],
    284             'REQUEST_METHOD': 'OPTIONS',
    285         }
    286         r.update(extra)
    287         return self.request(**r)
    288 
    289     def put(self, path, data={}, content_type=MULTIPART_CONTENT,
    290             **extra):
     281    def put(self, path, data='', content_type=MULTIPART_CONTENT, **extra):
    291282        "Construct a PUT request."
     283        return self.generic('PUT', path, data, content_type, **extra)
    292284
    293         put_data = self._encode_data(data, content_type)
     285    def delete(self, path, data='', content_type=MULTIPART_CONTENT, **extra):
     286        "Construct a DELETE request."
     287        return self.generic('DELETE', path, data, content_type, **extra)
    294288
     289    def generic(self, method, path, data='', content_type=MULTIPART_CONTENT,
     290                **extra):
    295291        parsed = urlparse(path)
    296292        r = {
    297             'CONTENT_LENGTH': len(put_data),
    298             'CONTENT_TYPE':   content_type,
    299293            'PATH_INFO':      self._get_path(parsed),
    300294            'QUERY_STRING':   parsed[4],
    301             'REQUEST_METHOD': 'PUT',
    302             'wsgi.input':     FakePayload(put_data),
     295            'REQUEST_METHOD': method,
    303296        }
     297        if data:
     298            r.update({
     299                'CONTENT_LENGTH': len(data),
     300                'CONTENT_TYPE':   content_type,
     301                'wsgi.input':     FakePayload(data),
     302            })
    304303        r.update(extra)
    305304        return self.request(**r)
    306305
    307     def delete(self, path, data={}, **extra):
    308         "Construct a DELETE request."
    309 
    310         parsed = urlparse(path)
    311         r = {
    312             'PATH_INFO':       self._get_path(parsed),
    313             'QUERY_STRING':    urlencode(data, doseq=True) or parsed[4],
    314             'REQUEST_METHOD': 'DELETE',
    315         }
    316         r.update(extra)
    317         return self.request(**r)
    318 
    319 
    320306class Client(RequestFactory):
    321307    """
    322308    A class that can act as a client for testing purposes.
Back to Top