diff --git a/inspirehep/modules/literaturesuggest/tasks.py b/inspirehep/modules/literaturesuggest/tasks.py index e220a09bf5..1ddf3e952c 100644 --- a/inspirehep/modules/literaturesuggest/tasks.py +++ b/inspirehep/modules/literaturesuggest/tasks.py @@ -255,14 +255,14 @@ def curation_ticket_context(user, obj): arxiv_ids + dois + report_numbers + ['(#{0})'.format(recid)] )) - references = obj.extra_data.get('formdata').get('references') + references = obj.extra_data.get('formdata', {}).get('references') user_comment = obj.extra_data.get('formdata', {}).get('extra_comments', '') return dict( recid=recid, record_url=record_url, link_to_pdf=link_to_pdf, - email=user.email, + email=user.email if user else '', references=references, user_comment=user_comment, subject=subject diff --git a/inspirehep/modules/workflows/tasks/submission.py b/inspirehep/modules/workflows/tasks/submission.py index 1ac09774e6..b8a110fccc 100644 --- a/inspirehep/modules/workflows/tasks/submission.py +++ b/inspirehep/modules/workflows/tasks/submission.py @@ -81,10 +81,7 @@ def create_ticket(template, @wraps(create_ticket) def _create_ticket(obj, eng): user = User.query.get(obj.id_user) - if not user: - obj.log.error( - "No user found for object %s, skipping ticket creation", obj.id) - return + context = {} if context_factory: context = context_factory(user, obj) @@ -95,7 +92,7 @@ def _create_ticket(obj, eng): u'To: {requestors} Queue: {queue}'.format( queue=queue, subject=context.get('subject'), - requestors=user.email, + requestors=user.email if user else '', ) ) return @@ -106,7 +103,7 @@ def _create_ticket(obj, eng): queue, template, context, - user.email, + user.email if user else '', recid, ticket_id_key) diff --git a/tests/integration/workflows/conftest.py b/tests/integration/workflows/conftest.py index 5e5af81975..9a4cdb00d4 100644 --- a/tests/integration/workflows/conftest.py +++ b/tests/integration/workflows/conftest.py @@ -50,22 +50,33 @@ def workflow_app(): .. deprecated:: 2017-09-18 Use ``app`` instead. """ - app = create_app( - BEARD_API_URL="http://example.com/beard", - DEBUG=True, - CELERY_ALWAYS_EAGER=True, - CELERY_RESULT_BACKEND='cache', - CELERY_CACHE_BACKEND='memory', - CELERY_EAGER_PROPAGATES_EXCEPTIONS=True, - PRODUCTION_MODE=True, - LEGACY_ROBOTUPLOAD_URL=( - 'http://localhost:1234' - ), - MAGPIE_API_URL="http://example.com/magpie", - WORKFLOWS_MATCH_REMOTE_SERVER_URL="http://legacy_search.endpoint/", - WORKFLOWS_FILE_LOCATION="/", - WTF_CSRF_ENABLED=False, - ) + RT_URL = "http://rt.inspire" + + with requests_mock.Mocker() as m: + m.register_uri( + requests_mock.ANY, + re.compile('.*' + RT_URL + '.*'), + status_code=200, + text='Status 200' + ) + + app = create_app( + BEARD_API_URL="http://example.com/beard", + DEBUG=True, + CELERY_ALWAYS_EAGER=True, + CELERY_RESULT_BACKEND='cache', + CELERY_CACHE_BACKEND='memory', + CELERY_EAGER_PROPAGATES_EXCEPTIONS=True, + PRODUCTION_MODE=True, + LEGACY_ROBOTUPLOAD_URL=( + 'http://localhost:1234' + ), + MAGPIE_API_URL="http://example.com/magpie", + WORKFLOWS_MATCH_REMOTE_SERVER_URL="http://legacy_search.endpoint/", + WORKFLOWS_FILE_LOCATION="/", + WTF_CSRF_ENABLED=False, + CFG_BIBCATALOG_SYSTEM_RT_URL=RT_URL + ) with app.app_context(): yield app @@ -130,6 +141,15 @@ def mocked_external_services(workflow_app): status_code=200, json={'phonetic_blocks': {}}, ) + requests_mocker.register_uri( + requests_mock.ANY, + re.compile( + '.*' + + workflow_app.config['CFG_BIBCATALOG_SYSTEM_RT_URL'] + + '/ticket/new.*' + ), + status_code=200, + ) yield