summaryrefslogtreecommitdiff
path: root/jsonpointer.py
diff options
context:
space:
mode:
authorkafkaf- <thekafkaf@gmail.com>2014-11-05 23:06:31 +0200
committerkafkaf- <thekafkaf@gmail.com>2014-11-05 23:06:31 +0200
commit4dc82340e04f1f445e072952ec03a3e9f544bc66 (patch)
tree4403e7a8bff9a2dc07d6deecf3e0effbd10c93c7 /jsonpointer.py
parent490c7a25147b0674fc0234d0462726595bd4fd87 (diff)
downloadpython-json-pointer-4dc82340e04f1f445e072952ec03a3e9f544bc66.tar.gz
Catching a broad exception to ensure the return of the default, added tests, fixed a bug where obj.contains(obj) returned false, added test case
Diffstat (limited to 'jsonpointer.py')
-rw-r--r--jsonpointer.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/jsonpointer.py b/jsonpointer.py
index ee7f266..02aa594 100644
--- a/jsonpointer.py
+++ b/jsonpointer.py
@@ -166,7 +166,8 @@ class JsonPointer(object):
try:
doc = self.walk(doc, part)
- except JsonPointerException:
+ # Catching a broad exception to ensure the return of the default
+ except:
if default is _nothing:
raise
else:
@@ -215,7 +216,7 @@ class JsonPointer(object):
else:
raise JsonPointerException("Document '%s' does not support indexing, "
- "must be dict/list or support __getitem__" % type(doc))
+ "must be mapping/sequence or support __getitem__" % type(doc))
def walk(self, doc, part):
@@ -249,7 +250,7 @@ class JsonPointer(object):
def contains(self, ptr):
""" Returns True if self contains the given ptr """
- return len(self.parts) > len(ptr.parts) and \
+ return len(self.parts) >= len(ptr.parts) and \
self.parts[:len(ptr.parts)] == ptr.parts
@property