summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Lundberg <lundberg@sunet.se>2020-11-04 12:42:38 +0100
committerJohan Lundberg <lundberg@sunet.se>2020-11-04 12:42:38 +0100
commitff57d51f14866cb8c8f8e5d5159c78ffa468702b (patch)
tree432c71cb8164891f55e3bb0557a24c7eb8cd1460
parent239c7a93d649a9dea171102406014a7d5113cf95 (diff)
downloadpysaml2-ff57d51f14866cb8c8f8e5d5159c78ffa468702b.tar.gz
Handle registration_policy None
-rw-r--r--src/saml2/mdstore.py2
-rw-r--r--tests/test_30_mdstore.py10
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