本文整理汇总了Python中rbtools.api.request.HttpRequest类的典型用法代码示例。如果您正苦于以下问题:Python HttpRequest类的具体用法?Python HttpRequest怎么用?Python HttpRequest使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了HttpRequest类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _update
def _update(resource, data=None, query_args={}, *args, **kwargs):
"""Generate a PUT request on a resource.
Unlike other methods, any additional query args must be passed in
using the 'query_args' parameter, since kwargs is used for the
fields which will be sent.
Review Board expects ``extra_data`` fields to be sent as
``extra_data.field_name``, which cannot be passed as a raw literal in
Python. Fields like this would have to be added to a dict and splatted.
However, this function also accepts keyword arguments of the form
``extra_data__field_name``, which will be rewritten to fields of the form
``extra_data.field_name``.
"""
request = HttpRequest(resource._links['update']['href'], method='PUT',
query_args=query_args)
if data is None:
data = {}
kwargs.update(data)
for name, value in _preprocess_fields(kwargs):
request.add_field(name, value)
return request
示例2: upload_attachment
def upload_attachment(self, filename, content, caption=None, **kwargs):
"""Uploads a new attachment.
The content argument should contain the body of the file to be
uploaded, in string format.
"""
request = HttpRequest(self._url, method="POST", query_args=kwargs)
request.add_file("path", filename, content)
if caption:
request.add_field("caption", caption)
return request
示例3: upload_screenshot
def upload_screenshot(self, filename, content, caption=None, **kwargs):
"""Uploads a new screenshot.
The content argument should contain the body of the screenshot
to be uploaded, in string format.
"""
request = HttpRequest(self.url, method='POST', query_args=kwargs)
request.add_file('path', filename, content)
if caption:
request.add_field('caption', caption)
return request
示例4: _update
def _update(resource, data={}, query_args={}, *args, **kwargs):
"""Generate a PUT request on a resource.
Unlike other methods, any additional query args must be passed in
using the 'query_args' parameter, since kwargs is used for the
fields which will be sent.
"""
request = HttpRequest(resource._links['update']['href'], method='PUT',
query_args=query_args)
data.update(kwargs)
for name, value in data.iteritems():
request.add_field(name, value)
return request
示例5: _update
def _update(resource, data=None, query_args={}, *args, **kwargs):
"""Generate a PUT request on a resource.
Unlike other methods, any additional query args must be passed in
using the 'query_args' parameter, since kwargs is used for the
fields which will be sent.
"""
request = HttpRequest(resource._links["update"]["href"], method="PUT", query_args=query_args)
if data is None:
data = {}
kwargs.update(data)
for name, value in kwargs.iteritems():
request.add_field(name, value)
return request
示例6: create_empty
def create_empty(self, base_commit_id=None, **kwargs):
"""Create an empty DiffSet that commits can be added to.
Args:
base_commit_id (unicode, optional):
The base commit ID of the diff.
**kwargs (dict):
Keyword arguments to encode into the querystring of the request
URL.
Returns:
DiffItemResource:
The created resource.
"""
request = HttpRequest(self._url, method=b'POST', query_args=kwargs)
if base_commit_id:
request.add_field('base_commit_id', base_commit_id)
return request
示例7: upload_diff
def upload_diff(self, diff, parent_diff=None, base_dir=None, base_commit_id=None, **kwargs):
"""Uploads a new diff.
The diff and parent_diff arguments should be strings containing
the diff output.
"""
request = HttpRequest(self._url, method="POST", query_args=kwargs)
request.add_file("path", "diff", diff)
if parent_diff:
request.add_file("parent_diff_path", "parent_diff", parent_diff)
if base_dir:
request.add_field("basedir", base_dir)
if base_commit_id:
request.add_field("base_commit_id", base_commit_id)
return request
示例8: finalize_commit_series
def finalize_commit_series(self, cumulative_diff, validation_info,
parent_diff=None):
"""Finalize a commit series.
Args:
cumulative_diff (bytes):
The cumulative diff of the entire commit series.
validation_info (unicode):
The validation information returned by validatin the last
commit in the series with the
:py:class:`ValidateDiffCommitResource`.
parent_diff (bytes, optional):
An optional parent diff.
This will be the same parent diff uploaded with each commit.
Returns:
DiffItemResource:
The finalized diff resource.
"""
if not isinstance(cumulative_diff, bytes):
raise TypeError('cumulative_diff must be byte string, not %s'
% type(cumulative_diff))
if parent_diff is not None and not isinstance(parent_diff, bytes):
raise TypeError('parent_diff must be byte string, not %s'
% type(cumulative_diff))
request = HttpRequest(self.links['self']['href'],
method='PUT')
request.add_field('finalize_commit_series', True)
request.add_file('cumulative_diff', 'cumulative_diff',
cumulative_diff)
request.add_field('validation_info', validation_info)
if parent_diff is not None:
request.add_file('parent_diff', 'parent_diff', parent_diff)
return request
示例9: prepare_upload_diff_request
def prepare_upload_diff_request(self, diff, parent_diff=None,
base_dir=None, base_commit_id=None,
**kwargs):
"""Create a request that can be used to upload a diff.
The diff and parent_diff arguments should be strings containing the
diff output.
"""
request = HttpRequest(self._url, method='POST', query_args=kwargs)
request.add_file('path', 'diff', diff)
if parent_diff:
request.add_file('parent_diff_path', 'parent_diff', parent_diff)
if base_dir:
request.add_field('basedir', base_dir)
if base_commit_id:
request.add_field('base_commit_id', base_commit_id)
return request
示例10: validate_diff
def validate_diff(self, repository, diff, parent_diff=None,
base_dir=None, **kwargs):
"""Validates a diff.
The diff and parent_diff arguments should be strings containing
the diff output.
"""
# TODO: This method should be unified with upload_diff() method of
# DiffListResource, since they both perform the same operation.
request = HttpRequest(self._url, method='POST', query_args=kwargs)
request.add_field('repository', repository)
request.add_file('path', 'diff', diff)
if parent_diff:
request.add_file('parent_diff_path', 'parent_diff', parent_diff)
if base_dir:
request.add_field('basedir', base_dir)
return request
示例11: upload_diff
def upload_diff(self, diff, parent_diff=None, base_dir=None,
base_commit_id=None, **kwargs):
"""Uploads a new diff.
The diff and parent_diff arguments should be strings containing
the diff output.
"""
# TODO: This method should be unified with validate_diff() method of
# ValidateDiffResource, since they both perform the same operation.
request = HttpRequest(self._url, method='POST', query_args=kwargs)
request.add_file('path', 'diff', diff)
if parent_diff:
request.add_file('parent_diff_path', 'parent_diff', parent_diff)
if base_dir:
request.add_field("basedir", base_dir)
if base_commit_id:
request.add_field('base_commit_id', base_commit_id)
return request
示例12: test_post_unicode_data
def test_post_unicode_data(self):
"""Testing the encoding of multipart form data with unicode and binary
field data
"""
konnichiwa = '\u3053\u3093\u306b\u3061\u306f'
request = HttpRequest('/', 'POST')
request.add_field('foo', konnichiwa)
request.add_field('bar', konnichiwa.encode('utf-8'))
request.add_field('baz', b'\xff')
ctype, content = request.encode_multipart_formdata()
fields = self._get_fields_as_dict(ctype, content)
self.assertTrue('foo' in fields)
self.assertEqual(fields['foo'], konnichiwa.encode('utf-8'))
self.assertEqual(fields['bar'], konnichiwa.encode('utf-8'))
self.assertEqual(fields['baz'], b'\xff')
示例13: upload_diff
def upload_diff(self, diff, parent_diff=None, base_dir=None, **kwargs):
"""Uploads a new diff.
The diff and parent_diff arguments should be strings containing
the diff output.
"""
request = HttpRequest(self.url, method='POST', query_args=kwargs)
request.add_file('path', 'diff', diff)
if parent_diff:
request.add_file('parent_diff_path', 'parent_diff', parent_diff)
if base_dir:
request.add_field("basedir", base_dir)
return request
示例14: HttpRequestTests
class HttpRequestTests(TestCase):
def setUp(self):
self.request = HttpRequest('/')
def test_default_values(self):
"""Testing the default values."""
self.assertEqual(self.request.url, '/')
self.assertEqual(self.request.method, 'GET')
content_type, content = self.request.encode_multipart_formdata()
self.assertTrue(content_type is None)
self.assertTrue(content is None)
def test_post_form_data(self):
"""Testing the multipart form data generation."""
request = HttpRequest('/', 'POST')
request.add_field('foo', 'bar')
request.add_field('bar', 42)
request.add_field('err', 'must-be-deleted')
request.add_field('name', 'somestring')
request.del_field('err')
ctype, content = request.encode_multipart_formdata()
m = re.match(b'^multipart/form-data; boundary=(.*)$', ctype)
self.assertFalse(m is None)
fields = [l.strip() for l in content.split(b'--' + m.group(1))][1:-1]
d = {}
disposition_re = re.compile(
b'Content-Disposition: form-data; name="(.*?)"$')
for f in fields:
lst = f.split(b'\r\n\r\n')
self.assertEqual(len(lst), 2)
k, v = lst
m = disposition_re.match(k)
self.assertFalse(m is None)
d[m.group(1)] = v
self.assertEqual(
d, {b'foo': b'bar', b'bar': b'42', b'name': b'somestring'})
示例15: setUp
def setUp(self):
self.request = HttpRequest('/')