diff options
author | Ivan Kanakarakis <ivan.kanak@gmail.com> | 2020-06-10 21:43:45 +0300 |
---|---|---|
committer | Ivan Kanakarakis <ivan.kanak@gmail.com> | 2020-06-11 00:47:51 +0300 |
commit | 433a788a15a7190c35c49c8e4ceedee667451873 (patch) | |
tree | 0e7df657a555eecd4c6ff184f074b436129cf5b7 /src/saml2/client_base.py | |
parent | 614b56d41f09f3b9346fc5837db3c45f9e5d9a62 (diff) | |
download | pysaml2-433a788a15a7190c35c49c8e4ceedee667451873.tar.gz |
Refactor create_authn_request loop param
Signed-off-by: Ivan Kanakarakis <ivan.kanak@gmail.com>
Diffstat (limited to 'src/saml2/client_base.py')
-rw-r--r-- | src/saml2/client_base.py | 25 |
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"] |