Skip to content

Commit 3edffc0

Browse files
committed
Catch non-existent pointers too.
1 parent 71e9d6a commit 3edffc0

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

referencing/_core.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -239,9 +239,9 @@ def lookup(self, ref: URI) -> Resolved[D]:
239239
uri, fragment = urldefrag(urljoin(self._base_uri, ref))
240240
try:
241241
resource = self._registry[uri]
242+
if fragment.startswith("/"):
243+
return resource.pointer(pointer=fragment, resolver=self)
242244
except KeyError:
243245
raise Unresolvable(ref=ref) from None
244-
if fragment.startswith("/"):
245-
return resource.pointer(pointer=fragment, resolver=self)
246246

247247
return Resolved(contents=resource.contents, resolver=self)

referencing/tests/test_core.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,14 @@ def test_lookup_unknown_reference(self):
224224
resolver.lookup(ref)
225225
assert e.value == exceptions.Unresolvable(ref=ref)
226226

227+
def test_lookup_non_existent_pointer(self):
228+
resource = Resource.opaque({"foo": {}})
229+
resolver = Registry({"http://example.com/1": resource}).resolver()
230+
ref = "http://example.com/1#/foo/bar"
231+
with pytest.raises(exceptions.Unresolvable) as e:
232+
resolver.lookup(ref)
233+
assert e.value == exceptions.Unresolvable(ref=ref)
234+
227235

228236
class TestSpecification:
229237
def test_create_resource(self):

0 commit comments

Comments
 (0)