mirror of
https://github.com/kennethreitz/requests.git
synced 2026-06-05 22:50:18 +00:00
+1
-3
@@ -408,9 +408,7 @@ class PreparedRequest(RequestEncodingMixin, RequestHooksMixin):
|
||||
|
||||
is_stream = all([
|
||||
hasattr(data, '__iter__'),
|
||||
not isinstance(data, basestring),
|
||||
not isinstance(data, list),
|
||||
not isinstance(data, dict)
|
||||
not isinstance(data, (basestring, list, tuple, dict))
|
||||
])
|
||||
|
||||
try:
|
||||
|
||||
@@ -21,6 +21,8 @@ from requests.exceptions import InvalidURL, MissingSchema
|
||||
from requests.models import PreparedRequest, Response
|
||||
from requests.structures import CaseInsensitiveDict
|
||||
from requests.sessions import SessionRedirectMixin
|
||||
from requests.models import PreparedRequest, urlencode
|
||||
from requests.hooks import default_hooks
|
||||
|
||||
try:
|
||||
import StringIO
|
||||
@@ -1275,5 +1277,30 @@ class TestRedirects:
|
||||
assert session.calls[-1] == send_call
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def list_of_tuples():
|
||||
return [
|
||||
(('a', 'b'), ('c', 'd')),
|
||||
(('c', 'd'), ('a', 'b')),
|
||||
(('a', 'b'), ('c', 'd'), ('e', 'f')),
|
||||
]
|
||||
|
||||
|
||||
def test_data_argument_accepts_tuples(list_of_tuples):
|
||||
"""
|
||||
Ensure that the data argument will accept tuples of strings
|
||||
and properly encode them.
|
||||
"""
|
||||
for data in list_of_tuples:
|
||||
p = PreparedRequest()
|
||||
p.prepare(
|
||||
method='GET',
|
||||
url='http://www.example.com',
|
||||
data=data,
|
||||
hooks=default_hooks()
|
||||
)
|
||||
assert p.body == urlencode(data)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user