Closed kytrinyx closed 5 years ago
@brandur I think I've figured this one out, and have updated the original PR description with my findings.
Thanks for digging into this Katrina!
I haven't done enough recent work on this library to say for sure we haven't missed any other edges, but what you've done looks sane as far as I can tell. Thanks for adding the new test case — that makes evaluating what's happening here a lot easier!
Released as 0.20.2.
Awesome, thank you @brandur !
Hi,
I ran into something that I think is a bug. The key thing is that
foo
points tobar
(in a separate schema) which points tobaz
(in the second schema). After expanding the references,bar
is expanded, butbaz
doesn't have the data I would expect it to, like so:I added a loop to dereference subschemas, but this blew up, because the second reference was local to the second schema (so no URI in the reference). When the
resolve_pointer
method did its lookup, it would find anil
URI, and therefore attempt to resolve against the base schema@schema
which in this case is the wrong one. By copying over the URI from the original reference, the lookup happens in the right place, but now I've got some infinite recursion going on.