Skip to content

Commit d94e10d

Browse files
author
Roland Hedberg
committed
Merge branch 'master' of github.com:rohe/pysaml2
2 parents 5a30933 + a8dd440 commit d94e10d

File tree

2 files changed

+32
-13
lines changed

2 files changed

+32
-13
lines changed

src/saml2/s_utils.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -236,20 +236,20 @@ def error_status_factory(info):
236236
msg = info.args[0]
237237
except IndexError:
238238
msg = "%s" % info
239-
status = samlp.Status(
240-
status_message=samlp.StatusMessage(text=msg),
241-
status_code=samlp.StatusCode(
242-
value=samlp.STATUS_RESPONDER,
243-
status_code=samlp.StatusCode(
244-
value=exc_val)))
245239
else:
246-
(errcode, text) = info
247-
status = samlp.Status(
248-
status_message=samlp.StatusMessage(text=text),
249-
status_code=samlp.StatusCode(
250-
value=samlp.STATUS_RESPONDER,
251-
status_code=samlp.StatusCode(value=errcode)))
240+
(exc_val, msg) = info
252241

242+
if msg:
243+
status_msg = samlp.StatusMessage(text=msg)
244+
else:
245+
status_msg = None
246+
247+
status = samlp.Status(
248+
status_message=status_msg,
249+
status_code=samlp.StatusCode(
250+
value=samlp.STATUS_RESPONDER,
251+
status_code=samlp.StatusCode(
252+
value=exc_val)))
253253
return status
254254

255255

tests/test_12_s_utils.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,15 @@
3030
'Value="urn:oasis:names:tc:SAML:2.0:status:UnknownPrincipal" '
3131
'/></ns0:StatusCode><ns0:StatusMessage>Error resolving '
3232
'principal</ns0:StatusMessage></ns0:Status>')
33-
ERROR_STATUS = '%s%s' % (XML_HEADER, ERROR_STATUS_NO_HEADER)
3433

34+
ERROR_STATUS_NO_HEADER_EMPTY = (
35+
'<ns0:Status xmlns:ns0="urn:oasis:names:tc:SAML:2.0:protocol"><ns0:StatusCode '
36+
'Value="urn:oasis:names:tc:SAML:2.0:status:Responder"><ns0:StatusCode '
37+
'Value="urn:oasis:names:tc:SAML:2.0:status:UnknownPrincipal" '
38+
'/></ns0:StatusCode></ns0:Status>')
39+
40+
ERROR_STATUS = '%s%s' % (XML_HEADER, ERROR_STATUS_NO_HEADER)
41+
ERROR_STATUS_EMPTY = '%s%s' % (XML_HEADER, ERROR_STATUS_NO_HEADER_EMPTY)
3542

3643
def _eq(l1, l2):
3744
return set(l1) == set(l2)
@@ -89,6 +96,18 @@ def test_status_from_exception():
8996
assert status_text in (ERROR_STATUS_NO_HEADER, ERROR_STATUS)
9097

9198

99+
def test_status_from_tuple():
100+
stat = utils.error_status_factory((samlp.STATUS_UNKNOWN_PRINCIPAL, 'Error resolving principal'))
101+
status_text = "%s" % stat
102+
assert status_text == ERROR_STATUS
103+
104+
105+
def test_status_from_tuple_empty_message():
106+
stat = utils.error_status_factory((samlp.STATUS_UNKNOWN_PRINCIPAL, None))
107+
status_text = "%s" % stat
108+
assert status_text == ERROR_STATUS_EMPTY
109+
110+
92111
def test_attribute_sn():
93112
attr = utils.do_attributes({"surName": ("Jeter", "")})
94113
assert len(attr) == 1

0 commit comments

Comments
 (0)