def test_reply_ticket_context(): data = { 'titles': [ { 'title': 'foo', }, ], } extra_data = { 'reason': 'bar', 'url': 'baz', } obj = MockObj(data, extra_data) user = MockUser('*****@*****.**') expected = { 'object': obj, 'user': user, 'title': 'foo', 'reason': 'bar', 'record_url': 'baz', } result = reply_ticket_context(user, obj) assert expected == result
def test_curation_ticket_context(): data = { 'arxiv_eprints': [ { 'value': 'math.GT/0309136', }, { 'value': '0706.0001v1', }, ], 'report_numbers': [ { 'value': 'foo', }, ], 'dois': [ { 'value': 'bar', }, ], } extra_data = { 'recid': 'baz', 'url': 'qux', 'formdata': { 'url': 'quux', 'references': [ 'plugh', ], 'extra_comments': [ 'xyzzy', ] } } obj = MockObj(data, extra_data) user = MockUser('*****@*****.**') expected = { 'recid': 'baz', 'record_url': 'qux', 'link_to_pdf': 'quux', 'email': '*****@*****.**', 'references': [ 'plugh', ], 'user_comment': [ 'xyzzy', ], 'server_name': 'localhost:5000', 'subject': 'math.GT/0309136 arXiv:0706.0001v1 doi:bar foo (#baz)', 'legacy_url': 'https://old.inspirehep.net', } result = curation_ticket_context(user, obj) assert expected == result
def test_close_ticket_calls_tickets_resolve(mock_resolve_ticket, mock_user): mock_user.query.get.return_value = MockUser('*****@*****.**') data = { 'titles': [ { 'title': 'Partial Symmetries of Weak Interactions' }, ], } extra_data = {'ticket_id': 1} obj = MockObj(data, extra_data) eng = MockEng() _close_ticket = close_ticket() _close_ticket(obj, eng) mock_resolve_ticket.assert_called_with(extra_data['ticket_id'])
def test_reply_ticket_calls_tickets_reply_when_template_is_not_set( mock_reply_ticket, mock_user): mock_user.query.get.return_value = MockUser('*****@*****.**') data = { 'titles': [ { 'title': 'Partial Symmetries of Weak Interactions' }, ], } extra_data = {'ticket_id': 1, 'reason': 'reply reason'} obj = MockObj(data, extra_data) eng = MockEng() _reply_ticket = reply_ticket() _reply_ticket(obj, eng) mock_reply_ticket.assert_called_with(extra_data['ticket_id'], extra_data['reason'], False)
def test_new_ticket_context(): data = { 'titles': [ { 'title': 'foo', }, ], 'external_system_numbers': [ { 'value': 'bar', }, ], } extra_data = { 'formdata': { 'extra_comments': [ 'baz', ], 'references': [ 'qux', ], }, } obj = MockObj(data, extra_data) user = MockUser('*****@*****.**') expected = { 'email': '*****@*****.**', 'title': 'foo', 'identifier': [ 'bar', ], 'user_comment': [ 'baz', ], 'references': [ 'qux', ], 'object': obj, 'subject': 'Your suggestion to INSPIRE: foo', } result = new_ticket_context(user, obj) assert expected == result
def test_create_ticket_calls_tickets_create_with_template( mock_create_ticket_with_template, mock_user): mock_user.query.get.return_value = MockUser('*****@*****.**') data = { 'titles': [ { 'title': 'Partial Symmetries of Weak Interactions' }, ], } template = 'template_path' extra_data = {'recid': '1'} obj = MockObj(data, extra_data) eng = MockEng() _create_ticket = create_ticket(template=template) _create_ticket(obj, eng) mock_create_ticket_with_template.assert_called_with( 'Test', '*****@*****.**', template, {}, None, extra_data['recid'])
def test_reply_ticket_calls_tickets_reply_with_template_when_template_is_set( mock_reply_ticket_with_template, mock_user): mock_user.query.get.return_value = MockUser('*****@*****.**') data = { 'titles': [ { 'title': 'Partial Symmetries of Weak Interactions' }, ], } extra_data = {'ticket_id': 1} template = 'template_path' obj = MockObj(data, extra_data) eng = MockEng() _reply_ticket = reply_ticket(template=template) _reply_ticket(obj, eng) mock_reply_ticket_with_template.assert_called_with(extra_data['ticket_id'], template, {}, False)
def test_new_ticket_context_handles_unicode(): data = { 'titles': [ { 'title': (u'Chocs caractéristiques et ondes simples ' u'exceptionnelles pour les systèmes conservatifs à ' u"intégrale d'énergie: forme explicite de la solution"), }, ], } extra_data = {} obj = MockObj(data, extra_data) user = MockUser('*****@*****.**') expected = { 'email': '*****@*****.**', 'title': (u'Chocs caractéristiques et ondes simples exceptionnelles pour ' u"les systèmes conservatifs à intégrale d'énergie: forme " u'explicite de la solution'), 'identifier': '', 'user_comment': '', 'references': None, 'object': obj, 'subject': (u'Your suggestion to INSPIRE: Chocs caractéristiques et ondes ' u'simples exceptionnelles pour les systèmes conservatifs à ' u"intégrale d'énergie: forme explicite de la solution"), } result = new_ticket_context(user, obj) assert expected == result
def test_is_cataloger_returns_false_when_user_has_no_roles(): user = MockUser('*****@*****.**') assert not is_cataloger(user)
def test_is_cataloger_returns_true_when_user_is_a_superuser(): superuser = MockUser('*****@*****.**', roles=['superuser']) assert is_cataloger(superuser)
def test_is_cataloger(): cataloger = MockUser('*****@*****.**', roles=['cataloger']) assert is_cataloger(cataloger)
# You should have received a copy of the GNU General Public License # along with INSPIRE. If not, see <http://www.gnu.org/licenses/>. # # In applying this license, CERN does not waive the privileges and immunities # granted to it by virtue of its status as an Intergovernmental Organization # or submit itself to any jurisdiction. from __future__ import absolute_import, division, print_function import json import mock from mocks import MockUser user_with_email = MockUser('*****@*****.**') user_empty_email = MockUser('') def test_postfeedback_provided_email(app_client): """Accepts feedback when providing en email.""" response = app_client.post('/postfeedback', data=dict(feedback='foo bar', replytoaddr='*****@*****.**')) assert response.status_code == 200 assert json.loads(response.data) == {'success': True} @mock.patch('inspirehep.modules.theme.views.current_user', user_with_email) def test_postfeedback_logged_in_user(app_client):