fix compute _url variable of workflow data uploads (#17233)
This commit is contained in:
parent
0b4d9fd9e5
commit
21e0603aa7
|
@ -1,3 +1,4 @@
|
||||||
|
import collections
|
||||||
import pytest
|
import pytest
|
||||||
import sys
|
import sys
|
||||||
import shutil
|
import shutil
|
||||||
|
@ -481,3 +482,19 @@ def test_private_history(pub, local_user):
|
||||||
|
|
||||||
local_user.roles = [role.id]
|
local_user.roles = [role.id]
|
||||||
assert formdef.is_user_allowed_read_status_and_history(local_user, formdata=formdata) is True
|
assert formdef.is_user_allowed_read_status_and_history(local_user, formdata=formdata) is True
|
||||||
|
|
||||||
|
def test_workflow_data_file_url(pub):
|
||||||
|
upload = Upload('test.txt', 'text/plain', 'ascii')
|
||||||
|
upload.receive(['first line', 'second line'])
|
||||||
|
|
||||||
|
formdata = formdef.data_class()()
|
||||||
|
formdata.store()
|
||||||
|
# create workflow_data as ordered dict to be sure _url comes last, to
|
||||||
|
# trigger #17233.
|
||||||
|
formdata.workflow_data = collections.OrderedDict(
|
||||||
|
foo_var_file='test.txt',
|
||||||
|
foo_var_file_raw=upload,
|
||||||
|
foo_var_file_url=None,
|
||||||
|
)
|
||||||
|
substvars = formdata.get_substitution_variables()
|
||||||
|
assert substvars['foo_var_file_url']
|
||||||
|
|
|
@ -649,6 +649,8 @@ class FormData(StorableObject):
|
||||||
if k[0] == '_':
|
if k[0] == '_':
|
||||||
continue
|
continue
|
||||||
d[k] = v
|
d[k] = v
|
||||||
|
# recompute _url variable of attached files
|
||||||
|
for k, v in self.workflow_data.items():
|
||||||
if isinstance(v, Upload):
|
if isinstance(v, Upload):
|
||||||
try:
|
try:
|
||||||
formvar, fieldvar = re.match('(.*)_var_(.*)_raw$', k).groups()
|
formvar, fieldvar = re.match('(.*)_var_(.*)_raw$', k).groups()
|
||||||
|
|
Loading…
Reference in New Issue