def test_array_field(): s_f = StringField() n_f = NumberField() field = ArrayField(Var({ 'role_1': s_f, 'role_2': n_f, })) schema = field.get_schema(role='role_1') assert schema['items'] == s_f.get_schema() schema = field.get_schema(role='role_2') assert schema['items'] == n_f.get_schema() schema = field.get_schema() assert 'items' not in schema _ = lambda value: Var({'role_1': value}) field = ArrayField(s_f, min_items=_(1), max_items=_(2), unique_items=_(True), additional_items=_(True)) assert field.get_schema() == { 'type': 'array', 'items': s_f.get_schema(), } assert field.get_schema(role='role_1') == { 'type': 'array', 'items': s_f.get_schema(), 'minItems': 1, 'maxItems': 2, 'uniqueItems': True, 'additionalItems': True, }
def test_keyword_of_fields(keyword, field_cls): s_f = StringField() n_f = NumberField() i_f = IntField() field = field_cls([n_f, Var(role_1=s_f), Var(role_2=i_f)]) assert field.get_schema() == { keyword: [n_f.get_schema()] } assert field.get_schema(role='role_1') == { keyword: [n_f.get_schema(), s_f.get_schema()] } assert field.get_schema(role='role_2') == { keyword: [n_f.get_schema(), i_f.get_schema()] } field = field_cls(Var( role_1=[n_f, Var(role_1=s_f), Var(role_2=i_f)], role_2=[Var(role_2=i_f)], roles_to_pass_down=['role_1'] )) assert field.get_schema() == {keyword: []} assert field.get_schema(role='role_1') == { keyword: [n_f.get_schema(), s_f.get_schema()] } assert field.get_schema(role='role_2') == {keyword: []}
class CircularSegment(Sector): class Options(object): inheritance_mode = ALL_OF definition_id = 'circular_segment' title = 'Circular Segment' h = NumberField(required=True)
class Sector(Circle): class Options(object): inheritance_mode = INLINE definition_id = 'sector' title = 'Sector' angle = NumberField(required=True)
class ValueLabelPair(DocumentWithoutAddProp): value = OneOfField([ NumberField(), StringField(max_length=250), BooleanField() ]) label = StringField(required=True, max_length=100)
def test_keyword_of_fields(keyword, field_cls): s_f = StringField() n_f = NumberField() i_f = IntField() field = field_cls([n_f, Var({'role_1': s_f}), Var({'role_2': i_f})]) assert field.get_schema() == {keyword: [n_f.get_schema()]} assert field.get_schema(role='role_1') == { keyword: [n_f.get_schema(), s_f.get_schema()] } assert field.get_schema(role='role_2') == { keyword: [n_f.get_schema(), i_f.get_schema()] } field = field_cls( Var( { 'role_1': [n_f, Var({'role_1': s_f}), Var({'role_2': i_f})], 'role_2': [Var({'role_2': i_f})], }, propagate='role_1')) assert field.get_schema() == {keyword: []} assert field.get_schema(role='role_1') == { keyword: [n_f.get_schema(), s_f.get_schema()] } assert field.get_schema(role='role_2') == {keyword: []}
def test_keyword_of_fields(keyword, field_cls): s_f = StringField() n_f = NumberField() i_f = IntField() field = field_cls([n_f, Var({'role_1': s_f}), Var({'role_2': i_f})]) assert s(field.get_schema()) == {keyword: [n_f.get_schema()]} assert s(field.get_schema(role='role_1')) == { keyword: [n_f.get_schema(), s_f.get_schema()] } assert s(field.get_schema(role='role_2')) == { keyword: [n_f.get_schema(), i_f.get_schema()] } field = field_cls( Var( { 'role_1': [n_f, Var({'role_1': s_f}), Var({'role_2': i_f})], 'role_2': [Var({'role_2': i_f})], }, propagate='role_1')) assert s(field.get_schema(role='role_1')) == { keyword: [n_f.get_schema(), s_f.get_schema()] } with pytest.raises(SchemaGenerationException): field.get_schema(role='role_2')
def test_keyword_of_fields(keyword, field_cls): s_f = StringField() n_f = NumberField() i_f = IntField() field = field_cls([n_f, Var({'role_1': s_f}), Var({'role_2': i_f})]) assert field.get_schema() == { keyword: [n_f.get_schema()] } assert field.get_schema(role='role_1') == { keyword: [n_f.get_schema(), s_f.get_schema()] } assert field.get_schema(role='role_2') == { keyword: [n_f.get_schema(), i_f.get_schema()] } field = field_cls(Var({ 'role_1': [n_f, Var({'role_1': s_f}), Var({'role_2': i_f})], 'role_2': [Var({'role_2': i_f})], }, propagate='role_1')) assert field.get_schema() == {keyword: []} assert field.get_schema(role='role_1') == { keyword: [n_f.get_schema(), s_f.get_schema()] } assert field.get_schema(role='role_2') == {keyword: []}
def test_keyword_of_fields(keyword, field_cls): s_f = StringField() n_f = NumberField() i_f = IntField() field = field_cls([n_f, Var({'role_1': s_f}), Var({'role_2': i_f})]) assert s(field.get_schema()) == { keyword: [n_f.get_schema()] } assert s(field.get_schema(role='role_1')) == { keyword: [n_f.get_schema(), s_f.get_schema()] } assert s(field.get_schema(role='role_2')) == { keyword: [n_f.get_schema(), i_f.get_schema()] } field = field_cls(Var({ 'role_1': [n_f, Var({'role_1': s_f}), Var({'role_2': i_f})], 'role_2': [Var({'role_2': i_f})], }, propagate='role_1')) assert s(field.get_schema(role='role_1')) == { keyword: [n_f.get_schema(), s_f.get_schema()] } with pytest.raises(SchemaGenerationException): field.get_schema(role='role_2')
class AlertEntity(DocumentWithoutAddProp): field = StringField(required=True, pattern="^\w+$") label = StringField(required=True, max_length=30) type = StringField(required=True, enum=["text", "singleSelect", "checkbox", "radio", "singleSelectSplunkSearch"]) help = StringField(max_length=200) defaultValue = OneOfField([ NumberField(), StringField(max_length=250), BooleanField() ]) required = BooleanField() search = StringField(max_length=200) valueField = StringField(max_length=200) labelField = StringField(max_length=200) options = DictField( properties={ "items": ArrayField(DocumentField(ValueLabelPair, as_ref=True)) } )
class Circle(Shape, Button): class Options(object): definition_id = 'circle' title = 'Circle' radius = NumberField(required=True)
class Response(Request): time = NumberField(required=True)
class NumberValidator(ValidatorBase): type = StringField(required=True, enum=["number"]) range = ArrayField(NumberField(), required=True)
class StringValidator(ValidatorBase): type = StringField(required=True, enum=["string"]) minLength = NumberField(required=True, minimum=0) maxLength = NumberField(required=True, minimum=0)
class Entity(DocumentWithoutAddProp): field = StringField(required=True, pattern="^\w+$") label = StringField(required=True, max_length=30) type = StringField(required=True, enum=["custom", "text", "singleSelect", "checkbox", "multipleSelect", "radio", "placeholder", "oauth", "helpLink"]) help = StringField(max_length=200) tooltip = StringField(max_length=250) defaultValue = OneOfField([ NumberField(), StringField(max_length=250), BooleanField() ]) options = DictField( properties={ "disableSearch": BooleanField(), "autoCompleteFields": OneOfField([ ArrayField(DictField( properties={ "label": StringField(required=True, max_length=150), "children": ArrayField(DocumentField(ValueLabelPair, as_ref=True), required=True) } )), ArrayField(DocumentField(ValueLabelPair, as_ref=True)) ]), "endpointUrl": StringField(max_length=350), "denyList": StringField(max_length=350), "allowList": StringField(max_length=350), "delimiter": StringField(max_length=1), "items": ArrayField(DocumentField(ValueLabelPair, as_ref=True)), "referenceName": StringField(max_length=250), "enable": BooleanField(), "placeholder": StringField(max_length=250), "display": BooleanField(), "labelField": StringField(max_length=250), "src": StringField(max_length=250), "defaultValue": StringField(max_length=250), "disableonEdit": BooleanField(), "basic": ArrayField(DocumentField(OAuthFields, as_ref=True)), "oauth": ArrayField(DocumentField(OAuthFields, as_ref=True)), "auth_type": ArrayField(StringField(max_length=100)), "auth_label": StringField(max_length=250), "oauth_popup_width": NumberField(), "oauth_popup_height": NumberField(), "oauth_timeout": NumberField(), "auth_code_endpoint": StringField(max_length=350), "access_token_endpoint": StringField(max_length=350), "text": StringField(max_length=50), "link": StringField() } ) required = BooleanField() encrypted = BooleanField() # List of inbuilt field validator validators = ArrayField(AnyOfField([ DocumentField(StringValidator, as_ref=True), DocumentField(NumberValidator, as_ref=True), DocumentField(RegexValidator, as_ref=True), DocumentField(EmailValidator, as_ref=True), DocumentField(Ipv4Validator, as_ref=True), DocumentField(UrlValidator, as_ref=True), DocumentField(DateValidator, as_ref=True) ]))