async def test_validate_attr_URI_WEB_allowed_domains_uri_web_invalid(): with pytest.raises(InvalidAttrException): await validate_attr( attr_name='test_validate_attr_URI_WEB', attr_type=ATTR.URI_WEB(allowed_domains=['foo.com', 'bar.net']), attr_val='https://sub.example.com', mode='create', )
async def test_validate_attr_URI_WEB_allowed_domains_uri_web(): attr_val = await validate_attr( attr_name='test_validate_attr_URI_WEB', attr_type=ATTR.URI_WEB(allowed_domains=['foo.com', 'bar.net']), attr_val='https://sub.foo.com/index?something=value', mode='create', ) assert attr_val == 'https://sub.foo.com/index?something=value'
async def test_validate_attr_URI_WEB_None_allow_none(): attr_val = await validate_attr( attr_name='test_validate_attr_URI_WEB', attr_type=ATTR.URI_WEB(), attr_val=None, mode='update', ) assert attr_val == None
async def test_validate_attr_URI_WEB_None(): with pytest.raises(InvalidAttrException): await validate_attr( attr_name='test_validate_attr_URI_WEB', attr_type=ATTR.URI_WEB(), attr_val=None, mode='create', )
async def test_validate_attr_URI_WEB_uri_web_secure(): attr_val = await validate_attr( attr_name='test_validate_attr_URI_WEB', attr_type=ATTR.URI_WEB(), attr_val='https://sub.example.com', mode='create', ) assert attr_val == 'https://sub.example.com'
async def test_validate_attr_LIST_muti_list_invalid(): with pytest.raises(InvalidAttrException): await validate_attr( attr_name='test_validate_attr_LIST', attr_type=ATTR.LIST( list=[ATTR.EMAIL(), ATTR.URI_WEB()]), attr_val=['*****@*****.**', 'http://sub.example.com', '1'], mode='create', )
async def test_validate_attr_URI_WEB_disallowed_domains_strict_uri_web(): attr_val = await validate_attr( attr_name='test_validate_attr_URI_WEB', attr_type=ATTR.URI_WEB(disallowed_domains=['foo.com', 'bar.net'], strict=True), attr_val='http://sub.bar.net', mode='create', ) assert attr_val == 'http://sub.bar.net'
async def test_validate_attr_URI_WEB_allowed_domains_strict_uri_web(): attr_val = await validate_attr( attr_name='test_validate_attr_URI_WEB', attr_type=ATTR.URI_WEB(allowed_domains=['foo.com', 'bar.net'], strict=True), attr_val='http://bar.net/some-params/and+page', mode='create', ) assert attr_val == 'http://bar.net/some-params/and+page'
async def test_validate_attr_URI_WEB_default_int_allow_none(): attr_type = ATTR.URI_WEB() attr_type._default = 'test_validate_attr_URI_WEB' attr_val = await validate_attr( attr_name='test_validate_attr_URI_WEB', attr_type=attr_type, attr_val=1, mode='update', ) assert attr_val == None
async def test_validate_attr_URI_WEB_default_None(): attr_type = ATTR.URI_WEB() attr_type._default = 'test_validate_attr_URI_WEB' attr_val = await validate_attr( attr_name='test_validate_attr_URI_WEB', attr_type=attr_type, attr_val=None, mode='create', ) assert attr_val == 'test_validate_attr_URI_WEB'
async def test_validate_attr_URI_WEB_disallowed_domains_strict_uri_web_invalid( ): with pytest.raises(InvalidAttrException): await validate_attr( attr_name='test_validate_attr_URI_WEB', attr_type=ATTR.URI_WEB(disallowed_domains=['foo.com', 'bar.net'], strict=True), attr_val='https://bar.net', mode='create', )
async def test_validate_attr_URI_WEB_uri_web_params(): attr_val = await validate_attr( attr_name='test_validate_attr_URI_WEB', attr_type=ATTR.URI_WEB(), attr_val= 'https://sub.example.com?param1=something-here¶m2=something_else', mode='create', ) assert ( attr_val == 'https://sub.example.com?param1=something-here¶m2=something_else')
async def test_validate_attr_LIST_typed_dict(): list_attr_val = [ '*****@*****.**', 'http://sub.example.com', 'https://sub.domain.com', ] attr_val = await validate_attr( attr_name='test_validate_attr_LIST', attr_type=ATTR.LIST(list=[ATTR.EMAIL(), ATTR.URI_WEB()], min=1, max=3), attr_val=list_attr_val, mode='create', ) assert attr_val == list_attr_val
version='1.0.0', gateways={ 'mailgun_messages': mailgun_messages_gateway, 'mailgun_newsletters': mailgun_newsletters_gateway, }, vars_types={ 'mailgun': ATTR.TYPED_DICT( dict={ 'key': ATTR.STR(), 'newsletters': ATTR.KV_DICT(key=ATTR.STR(), val=ATTR.STR()), 'senders': ATTR.KV_DICT( key=ATTR.STR(), val=ATTR.TYPED_DICT( dict={ 'uri': ATTR.URI_WEB(allowed_domains=['api.mailgun.net'], strict=True), 'sender_name': ATTR.STR(), 'sender_email': ATTR.EMAIL(), }), ), }) }, )
def test_generate_attr_URI_WEB_allowed_domains_strict(): attr_val = utils.generate_attr(attr_type=ATTR.URI_WEB( allowed_domains=['foo.com', 'bar.net', 'baz.ae'], strict=True)) assert attr_val.startswith('https://foo.com/') or attr_val.startswith( 'https://bar.net/') or attr_val.startswith('https://baz.ae/')
def test_generate_attr_URI_WEB_no_args(): attr_val = utils.generate_attr(attr_type=ATTR.URI_WEB()) assert re.match(r'^https?:\/\/(?:[\w\-\_]+\.)(?:\.?[\w]{2,})+([\?\/].*)?$', attr_val) != None