Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-fastjsonschema for
openSUSE:Factory checked in at 2023-09-29 21:12:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-fastjsonschema (Old)
and /work/SRC/openSUSE:Factory/.python-fastjsonschema.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-fastjsonschema"
Fri Sep 29 21:12:36 2023 rev:6 rq:1114016 version:2.18.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-fastjsonschema/python-fastjsonschema.changes
2023-05-30 22:01:27.242660790 +0200
+++
/work/SRC/openSUSE:Factory/.python-fastjsonschema.new.28202/python-fastjsonschema.changes
2023-09-29 21:12:47.812066641 +0200
@@ -1,0 +2,7 @@
+Tue Sep 26 19:04:36 UTC 2023 - Torsten Gruner <[email protected]>
+
+- update to 1.18.0
+ * Improved error message for required props - only missing are reported
+ * Fixed support of boolean schema in if-then-else application
+
+-------------------------------------------------------------------
Old:
----
fastjsonschema-2.17.1.tar.gz
New:
----
fastjsonschema-2.18.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-fastjsonschema.spec ++++++
--- /var/tmp/diff_new_pack.DtSwLz/_old 2023-09-29 21:12:48.856104310 +0200
+++ /var/tmp/diff_new_pack.DtSwLz/_new 2023-09-29 21:12:48.860104454 +0200
@@ -18,7 +18,7 @@
%{?sle15_python_module_pythons}
Name: python-fastjsonschema
-Version: 2.17.1
+Version: 2.18.0
Release: 0
Summary: Fastest Python implementation of JSON schema
License: BSD-3-Clause
++++++ fastjsonschema-2.17.1.tar.gz -> fastjsonschema-2.18.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/fastjsonschema-2.17.1/PKG-INFO
new/fastjsonschema-2.18.0/PKG-INFO
--- old/fastjsonschema-2.17.1/PKG-INFO 2023-05-22 07:51:26.000000000 +0200
+++ new/fastjsonschema-2.18.0/PKG-INFO 2023-07-22 20:29:49.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: fastjsonschema
-Version: 2.17.1
+Version: 2.18.0
Summary: Fastest Python implementation of JSON schema
Home-page: https://github.com/horejsek/python-fastjsonschema
Author: Michal Horejsek
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/fastjsonschema-2.17.1/fastjsonschema/draft04.py
new/fastjsonschema-2.18.0/fastjsonschema/draft04.py
--- old/fastjsonschema-2.17.1/fastjsonschema/draft04.py 2023-05-21
08:08:16.000000000 +0200
+++ new/fastjsonschema-2.18.0/fastjsonschema/draft04.py 2023-07-22
20:26:11.000000000 +0200
@@ -457,9 +457,10 @@
with self.l('if {variable}_is_dict:'):
if not isinstance(self._definition['required'], (list, tuple)):
raise JsonSchemaDefinitionException('required must be an
array')
- self.create_variable_with_length()
- with self.l('if not all(prop in {variable} for prop in
{required}):'):
- self.exc('{name} must contain {} properties',
self.e(self._definition['required']), rule='required')
+ self.l('{variable}__missing_keys = set({required}) -
{variable}.keys()')
+ with self.l('if {variable}__missing_keys:'):
+ dynamic = 'str(sorted({variable}__missing_keys)) + "
properties"'
+ self.exc('{name} must contain ',
self.e(self._definition['required']), rule='required', append_to_msg=dynamic)
def generate_properties(self):
"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/fastjsonschema-2.17.1/fastjsonschema/draft06.py
new/fastjsonschema-2.18.0/fastjsonschema/draft06.py
--- old/fastjsonschema-2.17.1/fastjsonschema/draft06.py 2023-05-21
08:08:16.000000000 +0200
+++ new/fastjsonschema-2.18.0/fastjsonschema/draft06.py 2023-07-22
20:21:18.000000000 +0200
@@ -40,6 +40,8 @@
Means that schema can be specified by boolean.
True means everything is valid, False everything is invalid.
"""
+ if self._definition is True:
+ self.l('pass')
if self._definition is False:
self.exc('{name} must not be there')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/fastjsonschema-2.17.1/fastjsonschema/generator.py
new/fastjsonschema-2.18.0/fastjsonschema/generator.py
--- old/fastjsonschema-2.17.1/fastjsonschema/generator.py 2023-05-21
08:08:16.000000000 +0200
+++ new/fastjsonschema-2.18.0/fastjsonschema/generator.py 2023-07-22
19:37:40.000000000 +0200
@@ -242,7 +242,7 @@
name = name + '".format(**locals()) + "'
context = dict(
- self._definition or {},
+ self._definition if self._definition and self._definition is not
True else {},
variable=self._variable,
name=name,
**kwds
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/fastjsonschema-2.17.1/fastjsonschema/version.py
new/fastjsonschema-2.18.0/fastjsonschema/version.py
--- old/fastjsonschema-2.17.1/fastjsonschema/version.py 2023-05-22
07:49:47.000000000 +0200
+++ new/fastjsonschema-2.18.0/fastjsonschema/version.py 2023-07-22
20:29:00.000000000 +0200
@@ -1 +1 @@
-VERSION = '2.17.1'
+VERSION = '2.18.0'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/fastjsonschema-2.17.1/fastjsonschema.egg-info/PKG-INFO
new/fastjsonschema-2.18.0/fastjsonschema.egg-info/PKG-INFO
--- old/fastjsonschema-2.17.1/fastjsonschema.egg-info/PKG-INFO 2023-05-22
07:51:26.000000000 +0200
+++ new/fastjsonschema-2.18.0/fastjsonschema.egg-info/PKG-INFO 2023-07-22
20:29:48.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: fastjsonschema
-Version: 2.17.1
+Version: 2.18.0
Summary: Fastest Python implementation of JSON schema
Home-page: https://github.com/horejsek/python-fastjsonschema
Author: Michal Horejsek
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/fastjsonschema-2.17.1/fastjsonschema.egg-info/SOURCES.txt
new/fastjsonschema-2.18.0/fastjsonschema.egg-info/SOURCES.txt
--- old/fastjsonschema-2.17.1/fastjsonschema.egg-info/SOURCES.txt
2023-05-22 07:51:26.000000000 +0200
+++ new/fastjsonschema-2.18.0/fastjsonschema.egg-info/SOURCES.txt
2023-07-22 20:29:48.000000000 +0200
@@ -20,6 +20,7 @@
tests/conftest.py
tests/test_array.py
tests/test_boolean.py
+tests/test_boolean_schema.py
tests/test_common.py
tests/test_compile_to_code.py
tests/test_composition.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/fastjsonschema-2.17.1/tests/test_boolean_schema.py
new/fastjsonschema-2.18.0/tests/test_boolean_schema.py
--- old/fastjsonschema-2.17.1/tests/test_boolean_schema.py 1970-01-01
01:00:00.000000000 +0100
+++ new/fastjsonschema-2.18.0/tests/test_boolean_schema.py 2023-07-22
20:24:36.000000000 +0200
@@ -0,0 +1,73 @@
+import pytest
+
+from fastjsonschema import JsonSchemaValueException
+
+
+BASE_SCHEMA = {
+ '$schema': 'http://json-schema.org/draft-07/schema',
+ "if": {
+ "const": 1
+ },
+}
+
+
[email protected]('value, expected', [
+ (1, 1),
+ (2, 2),
+])
+def test_boolean_schema_true_in_then(asserter, value, expected):
+ asserter({
+ **BASE_SCHEMA,
+ 'then': True,
+ 'else': {
+ 'type': 'number'
+ },
+ }, value, expected)
+
+
[email protected]('value, expected', [
+ (1, JsonSchemaValueException(
+ 'data must not be there', value=1, name='data',
+ definition=False, rule=None
+ )),
+ (2, 2),
+])
+def test_boolean_schema_false_in_then(asserter, value, expected):
+ asserter({
+ **BASE_SCHEMA,
+ 'then': False,
+ 'else': {
+ 'type': 'number'
+ },
+ }, value, expected)
+
+
[email protected]('value, expected', [
+ (1, 1),
+ (2, 2),
+])
+def test_boolean_schema_true_in_else(asserter, value, expected):
+ asserter({
+ **BASE_SCHEMA,
+ 'then': {
+ 'type': 'number',
+ },
+ 'else': True,
+ }, value, expected)
+
+
[email protected]('value, expected', [
+ (1, 1),
+ (2, JsonSchemaValueException(
+ 'data must not be there', value=2, name='data',
+ definition=False, rule=None
+ )),
+])
+def test_boolean_schema_false_in_else(asserter, value, expected):
+ asserter({
+ **BASE_SCHEMA,
+ 'then': {
+ 'type': 'number',
+ },
+ 'else': False,
+ }, value, expected)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/fastjsonschema-2.17.1/tests/test_integration.py
new/fastjsonschema-2.18.0/tests/test_integration.py
--- old/fastjsonschema-2.17.1/tests/test_integration.py 2022-07-17
09:30:32.000000000 +0200
+++ new/fastjsonschema-2.18.0/tests/test_integration.py 2023-07-22
20:26:11.000000000 +0200
@@ -85,8 +85,12 @@
JsonSchemaValueException('data[2][1] must be string', value=2,
name='data[2][1]', definition={'type': 'string'}, rule='type'),
),
(
+ [9, 'hello', [1], {'q': 'q', 'x': 'x', 'y': 'y'}, 'str', 5],
+ JsonSchemaValueException('data[3] must contain [\'a\', \'b\']
properties', value={'q': 'q', 'x': 'x', 'y': 'y'}, name='data[3]',
definition=definition['items'][3], rule='required'),
+ ),
+ (
[9, 'hello', [1], {'a': 'a', 'x': 'x', 'y': 'y'}, 'str', 5],
- JsonSchemaValueException('data[3] must contain [\'a\', \'b\']
properties', value={'a': 'a', 'x': 'x', 'y': 'y'}, name='data[3]',
definition=definition['items'][3], rule='required'),
+ JsonSchemaValueException('data[3] must contain [\'b\'] properties',
value={'a': 'a', 'x': 'x', 'y': 'y'}, name='data[3]',
definition=definition['items'][3], rule='required'),
),
(
[9, 'hello', [1], {}, 'str', 5],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/fastjsonschema-2.17.1/tests/test_object.py
new/fastjsonschema-2.18.0/tests/test_object.py
--- old/fastjsonschema-2.17.1/tests/test_object.py 2022-02-26
10:43:31.000000000 +0100
+++ new/fastjsonschema-2.18.0/tests/test_object.py 2023-07-22
20:26:11.000000000 +0200
@@ -43,10 +43,11 @@
}, value, expected)
-exc = JsonSchemaValueException('data must contain [\'a\', \'b\'] properties',
value='{data}', name='data', definition='{definition}', rule='required')
+def make_exc(missing):
+ return JsonSchemaValueException('data must contain {}
properties'.format(missing), value='{data}', name='data',
definition='{definition}', rule='required')
@pytest.mark.parametrize('value, expected', [
- ({}, exc),
- ({'a': 1}, exc),
+ ({}, make_exc(['a', 'b'])),
+ ({'a': 1}, make_exc(['b'])),
({'a': 1, 'b': 2}, {'a': 1, 'b': 2}),
])
def test_required(asserter, value, expected):