1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
import warnings
import pytest
def test_dont_override_variable_names(asserter):
value = {
'foo:bar': {
'baz': {
'bat': {},
},
'bit': {},
},
}
asserter({
'type': 'object',
'patternProperties': {
'^foo:': {
'type': 'object',
'properties': {
'baz': {
'type': 'object',
'patternProperties': {
'^b': {'type': 'object'},
},
},
'bit': {'type': 'object'},
},
},
},
}, value, value)
def test_clear_variables(asserter):
value = {
'bar': {'baz': 'foo'}
}
asserter({
'type': 'object',
'patternProperties': {
'foo': {'type': 'object', 'required': ['baz']},
'bar': {'type': 'object', 'required': ['baz']}
}
}, value, value)
def test_pattern_with_escape(asserter):
value = {
'\\n': {}
}
asserter({
'type': 'object',
'patternProperties': {
'\\\\n': {'type': 'object'}
}
}, value, value)
def test_pattern_with_escape_no_warnings(asserter):
value = {
'bar': {}
}
with warnings.catch_warnings():
warnings.simplefilter("error")
asserter({
'type': 'object',
'patternProperties': {
'\\w+': {'type': 'object'}
}
}, value, value)
|