Test of handling of unknown attributes.

This commit is contained in:
Roland Hedberg
2013-07-08 15:28:52 -07:00
parent 1553bc610f
commit c6cf3ede36

View File

@@ -5,7 +5,8 @@ from saml2 import attribute_converter, saml
from attribute_statement_data import * from attribute_statement_data import *
from pathutils import full_path from pathutils import full_path
from saml2.attribute_converter import AttributeConverterNOOP, to_local from saml2.attribute_converter import AttributeConverterNOOP
from saml2.attribute_converter import to_local
def _eq(l1,l2): def _eq(l1,l2):
@@ -58,11 +59,8 @@ class TestAC():
ava.update(ac.fro(ats)) ava.update(ac.fro(ats))
print ava.keys() print ava.keys()
assert _eq(ava.keys(),['uid', 'swissedupersonuniqueid', assert _eq(ava.keys(), ['eduPersonEntitlement', 'eduPersonAffiliation',
'swissedupersonhomeorganizationtype', 'uid', 'mail', 'givenName', 'sn'])
'eduPersonEntitlement', 'eduPersonAffiliation',
'sn', 'mail', 'swissedupersonhomeorganization',
'givenName'])
def test_to_attrstat_1(self): def test_to_attrstat_1(self):
ava = { "givenName": "Roland", "sn": "Hedberg" } ava = { "givenName": "Roland", "sn": "Hedberg" }
@@ -131,22 +129,22 @@ class TestAC():
assert _eq(lan, ['sn', 'givenName', 'title']) assert _eq(lan, ['sn', 'givenName', 'title'])
def test_ava_fro_1(self): # def test_ava_fro_1(self):
#
attr = [saml.Attribute(friendly_name="surName", # attr = [saml.Attribute(friendly_name="surName",
name="urn:oid:2.5.4.4", # name="urn:oid:2.5.4.4",
name_format="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"), # name_format="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"),
saml.Attribute(friendly_name="efternamn", # saml.Attribute(friendly_name="efternamn",
name="urn:oid:2.5.4.42", # name="urn:oid:2.5.4.42",
name_format="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"), # name_format="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"),
saml.Attribute(friendly_name="titel", # saml.Attribute(friendly_name="titel",
name="urn:oid:2.5.4.12", # name="urn:oid:2.5.4.12",
name_format="urn:oasis:names:tc:SAML:2.0:attrname-format:uri")] # name_format="urn:oasis:names:tc:SAML:2.0:attrname-format:uri")]
#
result = attribute_converter.ava_fro(self.acs, attr) # result = attribute_converter.ava_fro(self.acs, attr)
#
print result # print result
assert result == {'givenName': [], 'sn': [], 'title': []} # assert result == {'givenName': [], 'sn': [], 'title': []}
def test_to_local_name_from_basic(self): def test_to_local_name_from_basic(self):
attr = [saml.Attribute( attr = [saml.Attribute(
@@ -172,6 +170,21 @@ class TestAC():
ava = to_local(self.acs, ats) ava = to_local(self.acs, ats)
assert ava == {'user_id': ['bob'], 'NameID': ['bobsnameagain']} assert ava == {'user_id': ['bob'], 'NameID': ['bobsnameagain']}
def test_mixed_attributes_1(self):
ats = saml.attribute_statement_from_string(STATEMENT_MIXED)
ava = to_local(self.acs, ats)
assert ava == {'eduPersonAffiliation': ['staff'],
'givenName': ['Roland'], 'sn': ['Hedberg'],
'uid': ['demouser'], 'user_id': ['bob']}
# Allow unknown
ava = to_local(self.acs, ats, True)
assert ava == {'eduPersonAffiliation': ['staff'],
'givenName': ['Roland'], 'sn': ['Hedberg'],
'swissEduPersonHomeOrganizationType': ['others'],
'uid': ['demouser'], 'urn:example:com:foo': ['Thing'],
'user_id': ['bob']}
def test_noop_attribute_conversion(): def test_noop_attribute_conversion():
ava = {"urn:oid:2.5.4.4": "Roland", "urn:oid:2.5.4.42": "Hedberg" } ava = {"urn:oid:2.5.4.4": "Roland", "urn:oid:2.5.4.42": "Hedberg" }
@@ -193,5 +206,5 @@ def test_noop_attribute_conversion():
if __name__ == "__main__": if __name__ == "__main__":
t = TestAC() t = TestAC()
t.setup_class() t.setup_class()
t.test_ava_fro_2() t.test_mixed_attributes_1()
#test_noop_attribute_conversion() #test_noop_attribute_conversion()