summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kanakarakis <ivan.kanak@gmail.com>2020-06-10 21:43:45 +0300
committerIvan Kanakarakis <ivan.kanak@gmail.com>2020-06-11 00:47:51 +0300
commit433a788a15a7190c35c49c8e4ceedee667451873 (patch)
tree0e7df657a555eecd4c6ff184f074b436129cf5b7
parent614b56d41f09f3b9346fc5837db3c45f9e5d9a62 (diff)
downloadpysaml2-433a788a15a7190c35c49c8e4ceedee667451873.tar.gz
Refactor create_authn_request loop param
Signed-off-by: Ivan Kanakarakis <ivan.kanak@gmail.com>
-rw-r--r--src/saml2/client_base.py25
1 files changed, 10 insertions, 15 deletions
diff --git a/src/saml2/client_base.py b/src/saml2/client_base.py
index e717dc6e..618d806a 100644
--- a/src/saml2/client_base.py
+++ b/src/saml2/client_base.py
@@ -341,22 +341,17 @@ class Base(Entity):
# Allow argument values either as class instances or as dictionaries
# all of these have cardinality 0..1
_msg = AuthnRequest()
- for param in ["scoping", "requested_authn_context", "conditions",
- "subject"]:
- try:
- _item = kwargs[param]
- except KeyError:
- pass
+ for param in ["scoping", "requested_authn_context", "conditions", "subject"]:
+ _item = kwargs.pop(param, None)
+ if not _item:
+ continue
+
+ if isinstance(_item, _msg.child_class(param)):
+ args[param] = _item
+ elif isinstance(_item, dict):
+ args[param] = RequestedAuthnContext(**_item)
else:
- del kwargs[param]
- # either class instance or argument dictionary
- if isinstance(_item, _msg.child_class(param)):
- args[param] = _item
- elif isinstance(_item, dict):
- args[param] = RequestedAuthnContext(**_item)
- else:
- raise ValueError("%s or wrong type expected %s" % (_item,
- param))
+ raise ValueError("Wrong type for param {name}".format(name=param))
try:
args["name_id_policy"] = kwargs["name_id_policy"]