async def test_validate_attr_GEO_None(): with pytest.raises(InvalidAttrException): await validate_attr( attr_name='test_validate_attr_GEO', attr_type=ATTR.GEO(), attr_val=None, mode='create', )
async def test_validate_attr_GEO_None_allow_none(): attr_val = await validate_attr( attr_name='test_validate_attr_GEO', attr_type=ATTR.GEO(), attr_val=None, mode='update', ) assert attr_val == None
async def test_validate_attr_GEO_dict_invalid(): with pytest.raises(InvalidAttrException): await validate_attr( attr_name='test_validate_attr_GEO', attr_type=ATTR.GEO(), attr_val={'key': 'value'}, mode='create', )
async def test_validate_attr_GEO_geo(): geo_attr_val = {'type': 'Point', 'coordinates': [21.422507, 39.826181]} attr_val = await validate_attr( attr_name='test_validate_attr_GEO', attr_type=ATTR.GEO(), attr_val=geo_attr_val, mode='create', ) assert attr_val == geo_attr_val
async def test_validate_attr_GEO_default_int(): attr_type = ATTR.GEO() attr_type._default = 'test_validate_attr_GEO' attr_val = await validate_attr( attr_name='test_validate_attr_GEO', attr_type=attr_type, attr_val=1, mode='create', ) assert attr_val == 'test_validate_attr_GEO'
async def test_validate_attr_GEO_geo_as_str(): with pytest.raises(InvalidAttrException): await validate_attr( attr_name='test_validate_attr_GEO', attr_type=ATTR.GEO(), attr_val={ 'type': 'Point', 'coordinates': ['21.422507', '39.826181'] }, mode='create', )
async def test_validate_doc_allow_update_list_typed_dict_locale_dot_notated( preserve_state, ): with preserve_state(config, 'Config'): config.Config.locales = ['en_GB', 'jp_JP'] config.Config.locale = 'en_GB' attrs = { 'val': ATTR.LIST( list=[ATTR.TYPED_DICT(dict={'address': ATTR.LOCALE(), 'coords': ATTR.GEO()})] ) } doc = {'val.0.address.jp_JP': 'new_address'} await utils.validate_doc(doc=doc, attrs=attrs, mode='update') assert doc == {'val.0.address.jp_JP': 'new_address'}
def test_generate_attr_GEO(): attr_val = utils.generate_attr(attr_type=ATTR.GEO()) assert type(attr_val) == dict assert set(k for k in attr_val.keys()) == {'type', 'coordinates'}