Skip to content

Commit 146ff74

Browse files
authored
Merge pull request #357 from rebeckag/metadata-extension
Fix bug in MetadataStore.extension().
2 parents d7c2e34 + c8d2705 commit 146ff74

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

src/saml2/mdstore.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -995,10 +995,7 @@ def extension(self, entity_id, typ, service):
995995
try:
996996
srvs = _md[entity_id][typ]
997997
except KeyError:
998-
return None
999-
1000-
if not srvs:
1001-
return srvs
998+
continue
1002999

10031000
res = []
10041001
for srv in srvs:
@@ -1008,6 +1005,8 @@ def extension(self, entity_id, typ, service):
10081005
res.append(elem)
10091006
return res
10101007

1008+
return None
1009+
10111010
def ext_service(self, entity_id, typ, service, binding=None):
10121011
known_entity = False
10131012
for key, _md in self.metadata.items():

tests/test_30_mdstore.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# -*- coding: utf-8 -*-
33
import datetime
44
import re
5+
from collections import OrderedDict
56

67
from future.backports.urllib.parse import quote_plus
78

@@ -455,5 +456,16 @@ def test_metadata_extension_algsupport():
455456
mdf = mds.metadata[full_path("uu.xml")]
456457
assert mds
457458

459+
460+
def test_extension():
461+
mds = MetadataStore(ATTRCONV, None)
462+
# use ordered dict to force expected entity to be last
463+
metadata = OrderedDict()
464+
metadata["1"] = {"entity1": {}}
465+
metadata["2"] = {"entity2": {"idpsso_descriptor": [{"extensions": {"extension_elements": [{"__class__": "test"}]}}]}}
466+
mds.metadata = metadata
467+
assert mds.extension("entity2", "idpsso_descriptor", "test")
468+
469+
458470
if __name__ == "__main__":
459471
test_metadata_extension_algsupport()

0 commit comments

Comments
 (0)