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
示例#3
0
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'])
示例#4
0
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
示例#6
0
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'])
示例#7
0
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)
示例#8
0
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
示例#9
0
def test_is_cataloger_returns_false_when_user_has_no_roles():
    user = MockUser('*****@*****.**')
    assert not is_cataloger(user)
示例#10
0
def test_is_cataloger_returns_true_when_user_is_a_superuser():
    superuser = MockUser('*****@*****.**', roles=['superuser'])
    assert is_cataloger(superuser)
示例#11
0
def test_is_cataloger():
    cataloger = MockUser('*****@*****.**', roles=['cataloger'])
    assert is_cataloger(cataloger)
示例#12
0
# 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):