diff options
author | Johan Lundberg <lundberg@sunet.se> | 2020-11-04 12:42:38 +0100 |
---|---|---|
committer | Johan Lundberg <lundberg@sunet.se> | 2020-11-04 12:42:38 +0100 |
commit | ff57d51f14866cb8c8f8e5d5159c78ffa468702b (patch) | |
tree | 432c71cb8164891f55e3bb0557a24c7eb8cd1460 | |
parent | 239c7a93d649a9dea171102406014a7d5113cf95 (diff) | |
download | pysaml2-ff57d51f14866cb8c8f8e5d5159c78ffa468702b.tar.gz |
Handle registration_policy None
-rw-r--r-- | src/saml2/mdstore.py | 2 | ||||
-rw-r--r-- | tests/test_30_mdstore.py | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/saml2/mdstore.py b/src/saml2/mdstore.py index 76a981a8..a6f18fe2 100644 --- a/src/saml2/mdstore.py +++ b/src/saml2/mdstore.py @@ -1445,7 +1445,7 @@ class MetadataStore(MetaData): if elem["__class__"] == classnames["mdrpi_registration_info"]: res["registration_authority"] = elem["registration_authority"] res["registration_instant"] = elem.get("registration_instant") - for policy in elem.get('registration_policy'): + for policy in elem.get('registration_policy', list()): if policy["__class__"] == classnames["mdrpi_registration_policy"]: res['registration_policy'][policy["lang"]] = policy["text"] return res diff --git a/tests/test_30_mdstore.py b/tests/test_30_mdstore.py index fede1010..4dfa80f3 100644 --- a/tests/test_30_mdstore.py +++ b/tests/test_30_mdstore.py @@ -575,6 +575,16 @@ def test_registration_info(): registration_info['registration_policy']['en'] +def test_registration_info_no_policy(): + mds = MetadataStore(ATTRCONV, sec_config, + disable_ssl_certificate_validation=True) + mds.imp(METADATACONF["13"]) + registration_info = mds.registration_info(entity_id='https://idp.szie.hu/idp/shibboleth') + assert 'http://eduid.hu' == registration_info['registration_authority'] + assert registration_info['registration_instant'] is None + assert registration_info['registration_policy'] == {} + + def test_extension(): mds = MetadataStore(ATTRCONV, None) # use ordered dict to force expected entity to be last |