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]
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]