def test_merge_array_schema_overwrite_false(self): s1 = { "type": "array", "items": [{ "type": "string" }], "uniqueItems": True, "minItems": 1, "maxItems": 10, } s2 = { "type": "array", "items": [{ "type": "number" }], "uniqueItems": True, "minItems": 10, "maxItems": 100, } expected = { "type": "array", "items": [{ "type": "string" }], "uniqueItems": True, "minItems": 1, "maxItems": 10, } self.assertDictEqual(expected, schema_util.merge_schema(s1, s2, False))
def test_merge_object_schema_overwrite_false(self): s1 = { "type": "object", "properties": { "name": { "type": "string" }, "counter": { "type": "integer" } }, "required": ["name"], "additionalProperties": False, } s2 = { "type": "object", "properties": { "description": { "type": "string" }, "counter": { "type": "number" } }, "required": ["counter"], "additionalProperties": True, } expected = { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "counter": { "type": "integer" }, }, "required": ["counter", "name"], "additionalProperties": False, } self.assertDictEqual(expected, schema_util.merge_schema(s1, s2, False))
def test_merge_object_schema_patterned_properties_overwrite_false(self): s1 = { "type": "object", "patternProperties": { "^version$": { "type": "integer" } }, "minProperties": 1, "maxProperties": 100, } s2 = { "type": "object", "patternProperties": { r"^version$": { "type": "number" }, r"^(?!version)\w+$": { "type": "string" }, }, "minProperties": 0, "maxProperties": 10, } expected = { "type": "object", "patternProperties": { r"^version$": { "type": "integer" }, r"^(?!version)\w+$": { "type": "string" }, }, "minProperties": 1, "maxProperties": 100, } self.assertDictEqual(expected, schema_util.merge_schema(s1, s2, False))