wf/profile: do not use after jobs when there's no http response (#38793)
This commit is contained in:
parent
fcd1c46005
commit
4b8c74fd95
|
@ -3385,6 +3385,17 @@ def test_profile(two_pubs):
|
|||
else: # empty value : null field
|
||||
assert http_patch_request.call_args[0][1] == '{"bar": null}'
|
||||
|
||||
# out of http request/response cycle (cron, after_job)
|
||||
two_pubs._set_request(None)
|
||||
item.fields = [{'field_id': 'bar', 'value': '01/01/2020'}]
|
||||
with mock.patch('wcs.wf.profile.http_patch_request') as http_patch_request:
|
||||
http_patch_request.return_value = (None, 200, '', None)
|
||||
item.perform(formdata)
|
||||
assert User.get(user.id).form_data.get('4').tm_year == 2020
|
||||
assert http_patch_request.call_count == 1
|
||||
assert http_patch_request.call_args[0][1] == '{"bar": "2020-01-01"}'
|
||||
|
||||
|
||||
def test_set_backoffice_field(http_requests, two_pubs):
|
||||
Workflow.wipe()
|
||||
FormDef.wipe()
|
||||
|
|
|
@ -21,7 +21,7 @@ import time
|
|||
import xml.etree.ElementTree as ET
|
||||
|
||||
from django.utils.six.moves.urllib import parse as urlparse
|
||||
from quixote import get_publisher, get_response
|
||||
from quixote import get_publisher, get_response, get_request
|
||||
|
||||
from ..qommon import _
|
||||
from ..qommon.form import (CompositeWidget, SingleSelectWidget,
|
||||
|
@ -206,13 +206,16 @@ class UpdateUserProfileStatusItem(WorkflowStatusItem):
|
|||
|
||||
payload = json.dumps(payload, cls=JSONEncoder)
|
||||
|
||||
def after_job(job):
|
||||
def after_job(job=None):
|
||||
response, status, data, auth_header = http_patch_request(url,
|
||||
payload, headers={'Content-type': 'application/json'})
|
||||
if status != 200:
|
||||
get_logger().error('failed to update profile for user %r', user)
|
||||
|
||||
get_response().add_after_job(str(N_('Updating user profile')), after_job)
|
||||
if get_request():
|
||||
get_response().add_after_job(str(N_('Updating user profile')), after_job)
|
||||
else:
|
||||
after_job()
|
||||
|
||||
|
||||
register_item_class(UpdateUserProfileStatusItem)
|
||||
|
|
Loading…
Reference in New Issue