5
5
from attribute_statement_data import *
6
6
7
7
from pathutils import full_path
8
- from saml2 .attribute_converter import AttributeConverterNOOP
8
+ from saml2 .attribute_converter import AttributeConverterNOOP , AttributeConverter
9
9
from saml2 .attribute_converter import to_local
10
10
from saml2 .saml import attribute_from_string
11
11
12
12
13
- def _eq (l1 ,l2 ):
13
+ def _eq (l1 , l2 ):
14
14
return set (l1 ) == set (l2 )
15
15
16
+
16
17
BASIC_NF = 'urn:oasis:names:tc:SAML:2.0:attrname-format:basic'
17
18
URI_NF = 'urn:oasis:names:tc:SAML:2.0:attrname-format:uri'
18
19
SAML1 = 'urn:mace:shibboleth:1.0:attributeNamespace:uri'
@@ -30,11 +31,11 @@ def setup_class(self):
30
31
def test_setup (self ):
31
32
print (self .acs )
32
33
assert len (self .acs ) == 3
33
- assert _eq ([a .name_format for a in self .acs ],[BASIC_NF , URI_NF , SAML1 ] )
34
+ assert _eq ([a .name_format for a in self .acs ], [BASIC_NF , URI_NF , SAML1 ])
34
35
35
36
def test_ava_fro_1 (self ):
36
37
ats = saml .attribute_statement_from_string (STATEMENT1 )
37
- #print(ats)
38
+ # print(ats)
38
39
ava = None
39
40
40
41
for ac in self .acs :
@@ -56,7 +57,7 @@ def test_ava_fro_1(self):
56
57
57
58
def test_ava_fro_2 (self ):
58
59
ats = saml .attribute_statement_from_string (STATEMENT2 )
59
- #print(ats)
60
+ # print(ats)
60
61
ava = {}
61
62
for ac in self .acs :
62
63
ava .update (ac .fro (ats ))
@@ -66,7 +67,7 @@ def test_ava_fro_2(self):
66
67
'uid' , 'mail' , 'givenName' , 'sn' ])
67
68
68
69
def test_to_attrstat_1 (self ):
69
- ava = { "givenName" : "Roland" , "sn" : "Hedberg" }
70
+ ava = {"givenName" : "Roland" , "sn" : "Hedberg" }
70
71
71
72
statement = attribute_converter .from_local (self .acs , ava , BASIC_NF )
72
73
@@ -90,7 +91,7 @@ def test_to_attrstat_1(self):
90
91
assert False
91
92
92
93
def test_to_attrstat_2 (self ):
93
- ava = { "givenName" : "Roland" , "surname" : "Hedberg" }
94
+ ava = {"givenName" : "Roland" , "surname" : "Hedberg" }
94
95
95
96
statement = attribute_converter .from_local (self .acs , ava , URI_NF )
96
97
@@ -117,17 +118,17 @@ def test_to_local_name(self):
117
118
118
119
attr = [
119
120
saml .Attribute (
120
- friendly_name = "surName" ,
121
- name = "urn:oid:2.5.4.4" ,
122
- name_format = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri" ),
121
+ friendly_name = "surName" ,
122
+ name = "urn:oid:2.5.4.4" ,
123
+ name_format = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri" ),
123
124
saml .Attribute (
124
- friendly_name = "efternamn" ,
125
- name = "urn:oid:2.5.4.42" ,
126
- name_format = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri" ),
125
+ friendly_name = "efternamn" ,
126
+ name = "urn:oid:2.5.4.42" ,
127
+ name_format = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri" ),
127
128
saml .Attribute (
128
- friendly_name = "titel" ,
129
- name = "urn:oid:2.5.4.12" ,
130
- name_format = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri" )]
129
+ friendly_name = "titel" ,
130
+ name = "urn:oid:2.5.4.12" ,
131
+ name_format = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri" )]
131
132
132
133
lan = [attribute_converter .to_local_name (self .acs , a ) for a in attr ]
133
134
@@ -153,16 +154,16 @@ def test_to_local_name(self):
153
154
def test_to_local_name_from_basic (self ):
154
155
attr = [
155
156
saml .Attribute (
156
- name = "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" ,
157
- name_format = "urn:oasis:names:tc:SAML:2.0:attrname-format:basic" )
157
+ name = "urn:mace:dir:attribute-def:eduPersonPrimaryOrgUnitDN" ,
158
+ name_format = "urn:oasis:names:tc:SAML:2.0:attrname-format:basic" )
158
159
]
159
160
160
161
lan = [attribute_converter .to_local_name (self .acs , a ) for a in attr ]
161
162
162
163
assert _eq (lan , ['eduPersonPrimaryOrgUnitDN' ])
163
164
164
165
def test_to_and_for (self ):
165
- ava = { "givenName" : "Roland" , "surname" : "Hedberg" }
166
+ ava = {"givenName" : "Roland" , "surname" : "Hedberg" }
166
167
167
168
basic_ac = [a for a in self .acs if a .name_format == BASIC_NF ][0 ]
168
169
@@ -192,9 +193,26 @@ def test_mixed_attributes_1(self):
192
193
'uid' : ['demouser' ], 'urn:example:com:foo' : ['Thing' ],
193
194
'user_id' : ['bob' ]}
194
195
196
+ def test_adjust_with_only_from_defined (self ):
197
+ attr_conv = AttributeConverter ()
198
+ attr_conv ._fro = {"id1" : "name1" , "id2" : "name2" }
199
+ attr_conv .adjust ()
200
+ assert attr_conv ._to is not None
201
+
202
+ def test_adjust_with_only_to_defined (self ):
203
+ attr_conv = AttributeConverter ()
204
+ attr_conv ._to = {"id1" : "name1" , "id2" : "name2" }
205
+ attr_conv .adjust ()
206
+ assert attr_conv ._fro is not None
207
+
208
+ def test_adjust_with_no_mapping_defined (self ):
209
+ attr_conv = AttributeConverter ()
210
+ attr_conv .adjust ()
211
+ assert attr_conv ._fro is None and attr_conv ._to is None
212
+
195
213
196
214
def test_noop_attribute_conversion ():
197
- ava = {"urn:oid:2.5.4.4" : "Roland" , "urn:oid:2.5.4.42" : "Hedberg" }
215
+ ava = {"urn:oid:2.5.4.4" : "Roland" , "urn:oid:2.5.4.42" : "Hedberg" }
198
216
aconv = AttributeConverterNOOP (URI_NF )
199
217
res = aconv .to_ (ava )
200
218
@@ -229,4 +247,4 @@ def test_schac():
229
247
t = TestAC ()
230
248
t .setup_class ()
231
249
t .test_to_attrstat_1 ()
232
- #test_schac()
250
+ # test_schac()
0 commit comments