Skip to content

Commit

Permalink
Merge pull request #52 from FabioRosado/headers
Browse files Browse the repository at this point in the history
Allows the first argument of headers to be a str or list
  • Loading branch information
prkumar committed Jan 25, 2018
2 parents f4686db + a508267 commit 6789501
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 4 deletions.
9 changes: 9 additions & 0 deletions tests/test_decorators.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,15 @@ def test_headers(request_builder):
headers.modify_request(request_builder)
assert request_builder.info["headers"] == {"key_1": "value_1"}

headers_str = decorators.headers("key_1: value_1")
headers_str.modify_request(request_builder)
assert request_builder.info["headers"] == {"key_1": "value_1"}

headers_lst = decorators.headers(["key_1: value_1", "key_2: value_2"])
headers_lst.modify_request(request_builder)
header = {"key_1": "value_1", "key_2": "value_2"}
assert request_builder.info["headers"] == header


def test_form_url_encoded(request_builder):
form_url_encoded = decorators.form_url_encoded()
Expand Down
14 changes: 10 additions & 4 deletions uplink/decorators.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,10 +122,16 @@ class GitHub(Consumer):
"""

def __init__(self, arg, **kwargs):
# TODO: allow the first argument to be a list or str, in
# which case you would split the strings by a colon delimiter
# to identify the headers.
self._headers = dict(arg, **kwargs)
if isinstance(arg, str):
key, value = self._get_header(arg)
self._headers = {key: value}
elif isinstance(arg, list):
self._headers = dict(self._get_header(a) for a in arg)
else:
self._headers = dict(arg, **kwargs)

def _get_header(self, arg):
return map(str.strip, arg.split(":"))

def modify_request(self, request_builder):
"""Updates header contents."""
Expand Down

0 comments on commit 6789501

Please sign in to comment.