[7.x] Allow for passing params=None or headers=None

This commit is contained in:
Seth Michael Larson
2020-04-20 12:54:05 -05:00
committed by GitHub
parent 1915592363
commit 06521cf006
2 changed files with 22 additions and 8 deletions
+6 -8
View File
@@ -68,14 +68,12 @@ def query_params(*es_query_params):
def _wrapper(func):
@wraps(func)
def _wrapped(*args, **kwargs):
params = {}
headers = {}
if "params" in kwargs:
params = kwargs.pop("params").copy()
if "headers" in kwargs:
headers = {
k.lower(): v for k, v in (kwargs.pop("headers") or {}).items()
}
params = (kwargs.pop("params", None) or {}).copy()
headers = {
k.lower(): v
for k, v in (kwargs.pop("headers", None) or {}).copy().items()
}
if "opaque_id" in kwargs:
headers["x-opaque-id"] = kwargs.pop("opaque_id")
@@ -42,6 +42,22 @@ class TestQueryParams(TestCase):
self.calls, [((), {"params": {}, "headers": {"x-opaque-id": "request-id"}})]
)
def test_handles_empty_none_and_normalization(self):
self.func_to_wrap(params=None)
self.assertEqual(self.calls[-1], ((), {"params": {}, "headers": {}}))
self.func_to_wrap(headers=None)
self.assertEqual(self.calls[-1], ((), {"params": {}, "headers": {}}))
self.func_to_wrap(headers=None, params=None)
self.assertEqual(self.calls[-1], ((), {"params": {}, "headers": {}}))
self.func_to_wrap(headers={}, params={})
self.assertEqual(self.calls[-1], ((), {"params": {}, "headers": {}}))
self.func_to_wrap(headers={"X": "y"})
self.assertEqual(self.calls[-1], ((), {"params": {}, "headers": {"x": "y"}}))
class TestMakePath(TestCase):
def test_handles_unicode(self):