コード例 #1
0
def put(self, path, data={}, content_type=MULTIPART_CONTENT,
         follow=False, **extra):
    """
    Requests a response from the server using POST.
    """
    if content_type is MULTIPART_CONTENT:
        post_data = encode_multipart(BOUNDARY, data)
    else:
        # Encode the content so that the byte representation is correct.
        match = CONTENT_TYPE_RE.match(content_type)
        if match:
            charset = match.group(1)
        else:
            charset = settings.DEFAULT_CHARSET
        post_data = smart_str(data, encoding=charset)

    parsed = urlparse(path)
    r = {
        'CONTENT_LENGTH': len(post_data),
        'CONTENT_TYPE':   content_type,
        'PATH_INFO':      urllib.unquote(parsed[2]),
        'QUERY_STRING':   parsed[4],
        'REQUEST_METHOD': 'PUT',
        'wsgi.input':     FakePayload(post_data),
    }
    r.update(extra)

    response = self.request(**r)
    if follow:
        response = self._handle_redirects(response)
    return response
コード例 #2
0
ファイル: compat.py プロジェクト: kidosoft/django-smarttest
        def delete(self, path, data={}, **extra):
            "Construct a DELETE request."

            parsed = urlparse(path)
            r = {
                'PATH_INFO': self._get_path(parsed),
                'QUERY_STRING': urlencode(data, doseq=True) or parsed[4],
                'REQUEST_METHOD': 'DELETE',
                'wsgi.input': FakePayload('')
            }
            r.update(extra)
            return self.request(**r)
コード例 #3
0
ファイル: compat.py プロジェクト: kidosoft/django-smarttest
        def options(self, path, data={}, **extra):
            "Constrict an OPTIONS request"

            parsed = urlparse(path)
            r = {
                'PATH_INFO': self._get_path(parsed),
                'QUERY_STRING': urlencode(data, doseq=True) or parsed[4],
                'REQUEST_METHOD': 'OPTIONS',
                'wsgi.input': FakePayload('')
            }
            r.update(extra)
            return self.request(**r)
コード例 #4
0
ファイル: compat.py プロジェクト: kidosoft/django-smarttest
        def head(self, path, data={}, **extra):
            "Construct a HEAD request."

            parsed = urlparse(path)
            r = {
                'CONTENT_TYPE': 'text/html; charset=utf-8',
                'PATH_INFO': self._get_path(parsed),
                'QUERY_STRING': urlencode(data, doseq=True) or parsed[4],
                'REQUEST_METHOD': 'HEAD',
                'wsgi.input': FakePayload('')
            }
            r.update(extra)
            return self.request(**r)
コード例 #5
0
ファイル: compat.py プロジェクト: kidosoft/django-smarttest
        def post(self, path, data={}, content_type=MULTIPART_CONTENT, **extra):
            "Construct a POST request."

            post_data = self._encode_data(data, content_type)

            parsed = urlparse(path)
            r = {
                'CONTENT_LENGTH': len(post_data),
                'CONTENT_TYPE': content_type,
                'PATH_INFO': self._get_path(parsed),
                'QUERY_STRING': parsed[4],
                'REQUEST_METHOD': 'POST',
                'wsgi.input': FakePayload(post_data),
            }
            r.update(extra)
            return self.request(**r)
コード例 #6
0
def post_with_string_data_support(original_function, self, path, data={},
    content_type=MULTIPART_CONTENT, **extra):
    """If the data doesn't have an items() method, then it's probably already
    been converted to a string (encoded), and if we try again we'll call
    the nonexistent items() method and fail, so just don't encode it at
    all."""
    if content_type == MULTIPART_CONTENT and getattr(data, 'items', None) is None:
        parsed = urlparse(path)
        r = {
            'CONTENT_LENGTH': len(data),
            'CONTENT_TYPE':   content_type,
            'PATH_INFO':      self._get_path(parsed),
            'QUERY_STRING':   parsed[4],
            'REQUEST_METHOD': 'POST',
            'wsgi.input':     FakePayload(data),
        }
        r.update(extra)
        return self.request(**r)
    else:
        return original_function(self, path, data, content_type, **extra)
コード例 #7
0
ファイル: __init__.py プロジェクト: dsaradini/facile_backlog
 def patch(self, path, data={}, content_type='application/json',
           follow=False, **extra):
     """
     Requests a response from the server using PATH.
     """
     post_data = self._encode_data(data, content_type)
     parsed = urlparse(path)
     r = {
         'CONTENT_LENGTH': len(post_data),
         'CONTENT_TYPE':   content_type,
         'PATH_INFO':      self._get_path(parsed),
         'QUERY_STRING':   force_str(parsed[4]),
         'REQUEST_METHOD': str('PATCH'),
         'wsgi.input':     FakePayload(post_data),
     }
     r.update(extra)
     response = self.request(**r)
     if follow:
         response = self._handle_redirects(response, **extra)
     return response
コード例 #8
0
ファイル: general.py プロジェクト: malditha/report_server
    def patch(self, path, data={}, content_type=client.MULTIPART_CONTENT,
             **extra):
        "Construct a PATCH request."

        post_data = self._encode_data(data, content_type)
        
        username = '******'
        #credentials = base64.b64encode(username)
        #client.defaults['HTTP_AUTHORIZATION'] = 'Basic ' + credentials

        parsed = client.urlparse(path)
        r = {
            'CONTENT_LENGTH': len(post_data),
            'CONTENT_TYPE':   content_type,
            'PATH_INFO':      self._get_path(parsed),
            'QUERY_STRING':   parsed[4],
            'REQUEST_METHOD': 'PATCH',
            'wsgi.input':     client.FakePayload(post_data),
        }
        r.update(extra)
        return self.request(**r)
コード例 #9
0
ファイル: __init__.py プロジェクト: vfournie/facile_backlog
 def patch(self,
           path,
           data={},
           content_type='application/json',
           follow=False,
           **extra):
     """
     Requests a response from the server using PATH.
     """
     post_data = self._encode_data(data, content_type)
     parsed = urlparse(path)
     r = {
         'CONTENT_LENGTH': len(post_data),
         'CONTENT_TYPE': content_type,
         'PATH_INFO': self._get_path(parsed),
         'QUERY_STRING': force_str(parsed[4]),
         'REQUEST_METHOD': str('PATCH'),
         'wsgi.input': FakePayload(post_data),
     }
     r.update(extra)
     response = self.request(**r)
     if follow:
         response = self._handle_redirects(response, **extra)
     return response