diff options
author | Kevin Turner <kevin@janrain.com> | 2007-09-05 21:00:26 +0000 |
---|---|---|
committer | Kevin Turner <kevin@janrain.com> | 2007-09-05 21:00:26 +0000 |
commit | f16b1e829b0d9ec72da3491d297800b71d63031a (patch) | |
tree | a25ca031c59aed8ebfd9326e037fbd6edb46ad90 /openid/yadis | |
parent | a672fc017c5dc5f208f6ce2736fb1edaf9cbc194 (diff) | |
download | openid-f16b1e829b0d9ec72da3491d297800b71d63031a.tar.gz |
[project @ yadis.services.getServiceEndpoints: catch XRDSError, transform it to a DiscoveryFailure]
Diffstat (limited to 'openid/yadis')
-rw-r--r-- | openid/yadis/services.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/openid/yadis/services.py b/openid/yadis/services.py index 568e550..4753c19 100644 --- a/openid/yadis/services.py +++ b/openid/yadis/services.py @@ -1,6 +1,8 @@ +# -*- test-case-name: openid.test.test_services -*- + from openid.yadis.filters import mkFilter -from openid.yadis.discover import discover -from openid.yadis.etxrd import parseXRDS, iterServices +from openid.yadis.discover import discover, DiscoveryFailure +from openid.yadis.etxrd import parseXRDS, iterServices, XRDSError def getServiceEndpoints(input_url, flt=None): """Perform the Yadis protocol on the input URL and return an @@ -17,9 +19,15 @@ def getServiceEndpoints(input_url, flt=None): objects generated by the filter function. @rtype: (str, [endpoint]) + + @raises DiscoveryFailure: when Yadis fails to obtain an XRDS document. """ result = discover(input_url) - endpoints = applyFilter(result.normalized_uri, result.response_text, flt) + try: + endpoints = applyFilter(result.normalized_uri, + result.response_text, flt) + except XRDSError, err: + raise DiscoveryFailure(str(err), None) return (result.normalized_uri, endpoints) def applyFilter(normalized_uri, xrd_data, flt=None): |