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 sys
|
||||
import shutil
|
||||
|
@ -481,3 +482,19 @@ def test_private_history(pub, local_user):
|
|||
|
||||
local_user.roles = [role.id]
|
||||
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] == '_':
|
||||
continue
|
||||
d[k] = v
|
||||
# recompute _url variable of attached files
|
||||
for k, v in self.workflow_data.items():
|
||||
if isinstance(v, Upload):
|
||||
try:
|
||||
formvar, fieldvar = re.match('(.*)_var_(.*)_raw$', k).groups()
|
||||
|
|
Loading…
Reference in New Issue