summaryrefslogtreecommitdiff
path: root/jsonschema/_validators.py
diff options
context:
space:
mode:
authorJulian Berman <Julian@GrayVines.com>2019-01-14 09:09:41 -0500
committerJulian Berman <Julian@GrayVines.com>2019-01-14 09:09:41 -0500
commit8c9edd5a2c37d9e80446e8ada0a99c59206348af (patch)
tree113ff89efbc008a68f1e822a4d0d9b704f3b409b /jsonschema/_validators.py
parent434ca10145c4f78f45178c7865fa06983f21b3e0 (diff)
downloadjsonschema-8c9edd5a2c37d9e80446e8ada0a99c59206348af.tar.gz
Split out dependencies for draft 3.
Draft 3 allowed simple string dependencies, but no later draft does. This also lets us use the same fix for boolean schema nonsense as we just did for items.
Diffstat (limited to 'jsonschema/_validators.py')
-rw-r--r--jsonschema/_validators.py20
1 files changed, 6 insertions, 14 deletions
diff --git a/jsonschema/_validators.py b/jsonschema/_validators.py
index bb91643..8837d39 100644
--- a/jsonschema/_validators.py
+++ b/jsonschema/_validators.py
@@ -220,24 +220,16 @@ def dependencies(validator, dependencies, instance, schema):
if property not in instance:
continue
- # FIXME
- if dependency is True:
- dependency = {}
- elif dependency is False:
- dependency = {"not": {}}
-
- if validator.is_type(dependency, "object"):
+ if validator.is_type(dependency, "array"):
+ for each in dependency:
+ if each not in instance:
+ message = "%r is a dependency of %r"
+ yield ValidationError(message % (each, property))
+ else:
for error in validator.descend(
instance, dependency, schema_path=property,
):
yield error
- else:
- dependencies = _utils.ensure_list(dependency)
- for dependency in dependencies:
- if dependency not in instance:
- yield ValidationError(
- "%r is a dependency of %r" % (dependency, property)
- )
def enum(validator, enums, instance, schema):