Пример #1
0
def test_create_holdings_with_pattern(client, librarian_martigny_no_email,
                                      loc_public_martigny, journal,
                                      item_type_standard_martigny, document,
                                      json_header, holding_lib_martigny_data,
                                      pattern_yearly_one_level_data,
                                      holding_lib_martigny_w_patterns_data):
    """Test create holding type serial with patterns."""
    login_user_via_session(client, librarian_martigny_no_email.user)
    post_entrypoint = 'invenio_records_rest.hold_list'

    del holding_lib_martigny_data['pid']
    holding_lib_martigny_data['holdings_type'] = 'serial'
    res, _ = postdata(client, post_entrypoint, holding_lib_martigny_data)
    assert res.status_code == 403

    holding_lib_martigny_data['patterns'] = \
        pattern_yearly_one_level_data['patterns']

    # test will fail when creating a serial holding for a standard document.
    res, _ = postdata(client, post_entrypoint, holding_lib_martigny_data)
    assert res.status_code == 403

    # test will fail when creating a standard holding for a journal document.
    holding_lib_martigny_w_patterns_data['holdings_type'] = 'standard'
    del holding_lib_martigny_w_patterns_data['patterns']
    with pytest.raises(RecordValidationError):
        Holding.create(data=holding_lib_martigny_w_patterns_data,
                       delete_pid=True,
                       dbcommit=True,
                       reindex=True)

    journal_pids = list(Document.get_all_serial_pids())
    assert journal_pids == [journal.pid]
Пример #2
0
def test_create_holdings_with_pattern(
        client, librarian_martigny_no_email, loc_public_martigny,
        journal, item_type_standard_martigny, document,
        json_header, holding_lib_martigny_data, pattern_yearly_one_level_data,
        holding_lib_martigny_w_patterns_data):
    """Test create holding type serial with patterns."""
    login_user_via_session(client, librarian_martigny_no_email.user)
    post_entrypoint = 'invenio_records_rest.hold_list'

    del holding_lib_martigny_data['pid']
    holding_lib_martigny_data['holdings_type'] = 'serial'
    res, _ = postdata(
        client,
        post_entrypoint,
        holding_lib_martigny_data
    )
    assert res.status_code == 403

    holding_lib_martigny_data['patterns'] = \
        pattern_yearly_one_level_data['patterns']

    # test will fail when creating a serial holding for a standard document.
    res, _ = postdata(
        client,
        post_entrypoint,
        holding_lib_martigny_data
    )
    assert res.status_code == 403

    # test will not fail when creating a standard holding for a journal doc.
    holding_lib_martigny_w_patterns_data['holdings_type'] = 'standard'
    # delete serials fields
    fields = [
        'enumerationAndChronology', 'notes', 'index', 'missing_issues',
        'supplementaryContent', 'patterns'
    ]
    for field in fields:
        del holding_lib_martigny_w_patterns_data[field]
    Holding.create(
        data=holding_lib_martigny_w_patterns_data,
        delete_pid=True,
        dbcommit=True,
        reindex=True)

    journal_pids = list(Document.get_all_serial_pids())
    assert journal_pids == [journal.pid]