Проверка Python jsonschema всегда завершается успешноPython

Программы на Python
Anonymous
 Проверка Python jsonschema всегда завершается успешно

Сообщение Anonymous »

Я пытаюсь перенести приложение с jsonschema.RefResolver из-за следующих сообщений об устаревании при тестировании:

Код: Выделить всё

jsonschema.RefResolver is deprecated
as of v4.18.0, in favor of the https://github.com/python-jsonschema/referencing library
Вот пример текущего кода:

Код: Выделить всё

investigation_schema_path=os.path.join(
BASE_DIR, "..", "resources", "schemas", base_schemas_dir, "core", "investigation_schema.json"
)
with open(investigation_schema_path) as fp
investigation_schema = json.load(fp)
# Code below is uses the deprecated jsonschema.RefResolver
resolver = RefResolver("file://" + investigation_schema_path, investigation_schema)
validator = Draft4Validator(investigation_schema, resolver=resolver)
validator.validate(json_to_validate)
Приведенный выше код правильно проверяет все тестовые данные.
Основываясь на прочтении https://python-jsonschema.readthedocs.i ... ferencing/, я заменил устаревший код на:

Код: Выделить всё

  schema = Resource.from_contents(investigation_schema)
registry = schema @ Registry()
validator = Draft4Validator(schema, registry)
validator.validate(json_to_validate)
В результате любой тест, который должен обнаружить неверный json_to_validate, завершается неудачей, поскольку об ошибках не сообщается: {'errors': [], 'warnings': [], 'validation_finished': True
Тесты, которые анализируют правильный json_to_validate, по-прежнему кажутся pass.
Возможно, я неправильно понял, как использовать новую библиотеку ссылок. Есть ли у кого-нибудь предложения?

Подробнее здесь: https://stackoverflow.com/questions/797 ... s-succeeds

Вернуться в «Python»