misc: do not allow storing AnyFormData objects (#88338)
gitea/wcs/pipeline/head This commit looks good Details

This commit is contained in:
Frédéric Péters 2024-03-20 17:07:14 +01:00
parent 6de8f10127
commit 69249df789
2 changed files with 22 additions and 0 deletions

View File

@ -1692,6 +1692,26 @@ def test_load_all_evolutions_on_any_formdata(pub):
assert len([x for x in objects if x._evolution is not None]) == 100
def test_store_on_any_formdata(pub):
drop_formdef_tables()
formdef = FormDef()
formdef.name = 'test any store'
formdef.fields = []
formdef.store()
data_class = formdef.data_class(mode='sql')
formdata = data_class()
formdata.just_created()
formdata.receipt_time = localtime()
formdata.store()
objects = sql.AnyFormData.select()
assert len(objects) == 1
with pytest.raises(TypeError):
objects[0].store()
def test_geoloc_in_global_view(pub):
drop_formdef_tables()

View File

@ -4725,6 +4725,8 @@ class AnyFormData(SqlMixin):
# convert back unstructured geolocation to the 'native' formdata format.
if o.geoloc_base_x is not None:
o.geolocations = {'base': {'lon': o.geoloc_base_x, 'lat': o.geoloc_base_y}}
# do not allow storing those partial objects
o.store = None
return o
@classmethod