summaryrefslogtreecommitdiff
path: root/openid/yadis
diff options
context:
space:
mode:
authorKevin Turner <kevin@janrain.com>2007-09-05 21:00:26 +0000
committerKevin Turner <kevin@janrain.com>2007-09-05 21:00:26 +0000
commitf16b1e829b0d9ec72da3491d297800b71d63031a (patch)
treea25ca031c59aed8ebfd9326e037fbd6edb46ad90 /openid/yadis
parenta672fc017c5dc5f208f6ce2736fb1edaf9cbc194 (diff)
downloadopenid-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.py14
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):