summaryrefslogtreecommitdiff
path: root/jsonschema/validators.py
diff options
context:
space:
mode:
authorJulian Berman <Julian@GrayVines.com>2023-04-27 10:48:40 -0400
committerJulian Berman <Julian@GrayVines.com>2023-04-27 10:48:40 -0400
commit16fef5b641e82a88f71f50657e29ae8a827969a5 (patch)
tree7afce825d17db495883609282c1ad13642e57727 /jsonschema/validators.py
parentcd88c1d6704fc17d83b0494bab29db2034573eeb (diff)
downloadjsonschema-16fef5b641e82a88f71f50657e29ae8a827969a5.tar.gz
Fix an additional unintentional resolution scope change in RefResolverv4.18.0a6
Closes: #1085
Diffstat (limited to 'jsonschema/validators.py')
-rw-r--r--jsonschema/validators.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/jsonschema/validators.py b/jsonschema/validators.py
index 5b16fdc..262113b 100644
--- a/jsonschema/validators.py
+++ b/jsonschema/validators.py
@@ -387,11 +387,14 @@ def create(
)
return
- if resolver is None:
- resolver = self._resolver.in_subresource(
- specification.create_resource(schema),
- )
- evolved = self.evolve(schema=schema, _resolver=resolver)
+ if self._ref_resolver is not None:
+ evolved = self.evolve(schema=schema)
+ else:
+ if resolver is None:
+ resolver = self._resolver.in_subresource(
+ specification.create_resource(schema),
+ )
+ evolved = self.evolve(schema=schema, _resolver=resolver)
for k, v in applicable_validators(schema):
validator = evolved.VALIDATORS.get(k)
@@ -448,7 +451,7 @@ def create(
self._ref_resolver.push_scope(scope)
try:
- return self.descend(instance, resolved)
+ return list(self.descend(instance, resolved))
finally:
self._ref_resolver.pop_scope()