Exemple #1
0
 def test_encode_multipart(self):
     data = {'key': 'value'}
     body, boundary = encode_multipart(data)
     expected_body = (
         '\r\n--{boundary}'
         '\r\nContent-Disposition: form-data; name="key"\r\n'
         '\r\nvalue'
         '\r\n--{boundary}--'
         '\r\n'.format(boundary=boundary).encode('utf8')
     )
     self.assertEqual(body, expected_body)
Exemple #2
0
 def test_encode_multipart_file(self):
     # this data is not decodable using utf8
     data = {'key': ('file/name', b'\xa1\xa2\xa3\xa4\r\n\r')}
     body, boundary = encode_multipart(data)
     body_lines = [
         b'\r\n--' + boundary.encode('ascii'),
         b'\r\nContent-Disposition: form-data; name="key"; filename="file/name"\r\n',
         b'\r\n\xa1\xa2\xa3\xa4\r\n\r',
         b'\r\n--' + boundary.encode('ascii') + b'--\r\n',
     ]
     expected_body = b''.join(body_lines)
     self.assertEqual(body, expected_body)
Exemple #3
0
    def _http_post(self, json_interface, data):

        url = self._get_server_url() + "/" + json_interface

        if data:
            body, boundary = encode_multipart(data)
            headers = {
                'Content-Type': 'multipart/form-data; boundary=%s' % boundary,
                'Content-Length': str(len(body)),
            }

        self._log("_http_post: url=%s with body=%s, from data=%s" % (url, body, data))
        req = urllib2.Request(url, body, headers)
        self._add_auth_header(req)

        return self._get_response(req)
Exemple #4
0
 def test_encode_multipart_unicode(self):
     data = OrderedDict([
         (u'ключ1', u'значение1'.encode('utf8')),
         (u'ключ2', u'значение2'),
     ])
     body, boundary = encode_multipart(data)
     expected_body = (
         u'\r\n--{boundary}'
         u'\r\nContent-Disposition: form-data; name="ключ1"\r\n'
         u'\r\nзначение1'
         u'\r\n--{boundary}'
         u'\r\nContent-Disposition: form-data; name="ключ2"\r\n'
         u'\r\nзначение2'
         u'\r\n--{boundary}--'
         u'\r\n'.format(boundary=boundary).encode('utf8')
     )
     self.assertEqual(body, expected_body)
Exemple #5
0
def _upload_egg(target, eggpath, project, version):
    with open(eggpath, 'rb') as f:
        eggdata = f.read()
    data = {
        'project': project,
        'version': version,
        'egg': ('project.egg', eggdata),
    }
    body, boundary = encode_multipart(data)
    url = _url(target, 'addversion.json')
    headers = {
        'Content-Type': 'multipart/form-data; boundary=%s' % boundary,
        'Content-Length': str(len(body)),
    }
    req = urllib2.Request(url, body, headers)
    _add_auth_header(req, target)
    _log("Deploying %s-%s to %s" % (project, version, url))
    _http_post(req)
Exemple #6
0
def _upload_egg(target, eggpath, project, version):
    with open(eggpath, 'rb') as f:
        eggdata = f.read()
    data = {
        'project': project,
        'version': version,
        'egg': ('project.egg', eggdata),
    }
    body, boundary = encode_multipart(data)
    url = _url(target, 'addversion.json')
    headers = {
        'Content-Type': 'multipart/form-data; boundary=%s' % boundary,
        'Content-Length': str(len(body)),
    }
    req = urllib2.Request(url, body, headers)
    _add_auth_header(req, target)
    _log("Deploying %s-%s to %s" % (project, version, url))
    _http_post(req)
    def _upload_egg(self, target, eggpath, project, version):
        with open(eggpath, 'rb') as f:
            eggdata = f.read()
        data = {
            'project': project,
            'version': version,
            'egg': ('project.egg', eggdata),
        }
        body, boundary = encode_multipart(data)
        url = self._get_url(target)
        headers = {
            'Content-Type': 'multipart/form-data; boundary=%s' % boundary,
            'Content-Length': str(len(body)),
        }

        print 'Deploying to project "%s" in %s' % (project, url)
        result = self._do_post(url, body, headers)
        return result
Exemple #8
0
    def _upload_egg(self, eggpath, project, version ):
        with open(eggpath, 'rb' ) as f :
            eggdata = f.read()
 
        data = {
            'project': project,
            'version' : version, 
            'egg' : ('project.egg', eggdata),
        }

        body, boundary = encode_multipart(data)
        #url = _url(target, 'addversion.json')
        url = "%s/addversion.json" % settings.SCRAPYD_URL

        headers = {
            'Content-Type': 'multipart/form-data; boundary=%s' % boundary,
            'Content-Length': str(len(body)),
        }

        req = urllib2.Request(url, body, headers)
        #_add_auth_header(req, target)
        self._log('Deploying to project "%s" in %s' % (project, url))

        return self._http_post(req)