def test_signals_loan_extend(loan_created, params): """Test signals for loan extend action.""" recorded = [] def record_signals(_, initial_loan, loan, trigger, **kwargs): recorded.append((initial_loan, loan, trigger, kwargs)) loan_state_changed.connect(record_signals, weak=False) assert len(recorded) == 0 loan = current_circulation.circulation.trigger( loan_created, **dict(params, trigger="checkout")) assert len(recorded) == 1 initial_loan, updated_loan, trigger, kwargs = recorded.pop() assert initial_loan["state"] == "CREATED" assert updated_loan["state"] == "ITEM_ON_LOAN" assert trigger == "checkout" current_circulation.circulation.trigger(loan, **dict(params, trigger="extend")) assert len(recorded) == 1 initial_loan, updated_loan, trigger, kwargs = recorded.pop() assert initial_loan["state"] == "ITEM_ON_LOAN" assert updated_loan["state"] == "ITEM_ON_LOAN" assert initial_loan["end_date"] != updated_loan["end_date"] assert trigger == "extend"
def register_signals(self, app): """Register signals.""" # TODO: use before_record_index.dynamic_connect() if it works # example: # before_record_index.dynamic_connect( # enrich_patron_data, sender=app, index='patrons-patron-v0.0.1') before_record_index.connect(enrich_collection_data, sender=app) before_record_index.connect(enrich_loan_data, sender=app) before_record_index.connect(enrich_document_data, sender=app) before_record_index.connect(enrich_contributions_data, sender=app) before_record_index.connect(enrich_item_data, sender=app) before_record_index.connect(enrich_patron_data, sender=app) before_record_index.connect(enrich_location_data, sender=app) before_record_index.connect(enrich_holding_data, sender=app) before_record_index.connect(enrich_notification_data, sender=app) before_record_index.connect(enrich_patron_transaction_event_data, sender=app) before_record_index.connect(enrich_patron_transaction_data, sender=app) before_record_index.connect(enrich_ill_request_data, sender=app) after_record_insert.connect(create_subscription_patron_transaction) after_record_update.connect(create_subscription_patron_transaction) loan_state_changed.connect(listener_loan_state_changed, weak=False) oaiharvest_finished.connect(publish_harvested_records, weak=False) apiharvest_part.connect(publish_api_harvested_records, weak=False) # invenio-userprofiles signal after_profile_update.connect(update_from_profile)
def test_signals_loan_extend(loan_created, db, params): """Test signals for loan extend action.""" recorded = [] def record_signals(_, prev_loan, loan, trigger): recorded.append((prev_loan, loan, trigger)) loan_state_changed.connect(record_signals, weak=False) assert len(recorded) == 0 loan = current_circulation.circulation.trigger( loan_created, **dict(params, trigger="checkout") ) db.session.commit() assert len(recorded) == 1 prev_loan, updated_loan, trigger = recorded.pop() assert prev_loan["state"] == "CREATED" assert updated_loan["state"] == "ITEM_ON_LOAN" assert trigger == "checkout" current_circulation.circulation.trigger( loan, **dict(params, trigger="extend") ) db.session.commit() assert len(recorded) == 1 prev_loan, updated_loan, trigger = recorded.pop() assert prev_loan["state"] == "ITEM_ON_LOAN" assert updated_loan["state"] == "ITEM_ON_LOAN" assert prev_loan["end_date"] != updated_loan["end_date"] assert trigger == "extend"
def register_circulation_signals(): """Register Circulation signal.""" loan_state_changed.connect( send_email_after_loan_change, weak=False ) loan_replace_item.connect( index_after_loan_replace_item, weak=False )
def register_signals(self, app): """Register signals.""" # TODO: use before_record_index.dynamic_connect() if it works # example: # before_record_index.dynamic_connect( # enrich_patron_data, sender=app, index='patrons-patron-v0.0.1') before_record_index.connect(enrich_acq_account_data, sender=app) before_record_index.connect(enrich_acq_order_data, sender=app) before_record_index.connect(enrich_acq_receipt_data, sender=app) before_record_index.connect(enrich_acq_receipt_line_data, sender=app) before_record_index.connect(enrich_acq_order_line_data, sender=app) before_record_index.connect(enrich_collection_data, sender=app) before_record_index.connect(enrich_loan_data, sender=app) before_record_index.connect(enrich_document_data, sender=app) before_record_index.connect(enrich_contributions_data, sender=app) before_record_index.connect(enrich_item_data, sender=app) before_record_index.connect(enrich_patron_data, sender=app) before_record_index.connect(enrich_location_data, sender=app) before_record_index.connect(enrich_holding_data, sender=app) before_record_index.connect(enrich_notification_data, sender=app) before_record_index.connect(enrich_patron_transaction_event_data, sender=app) before_record_index.connect(enrich_patron_transaction_data, sender=app) before_record_index.connect(enrich_ill_request_data, sender=app) before_record_index.connect(prepare_template_data, sender=app) after_record_insert.connect(create_subscription_patron_transaction) after_record_update.connect(create_subscription_patron_transaction) after_record_update.connect(update_items_locations_and_types) before_record_update.connect(budget_is_active_changed) before_record_update.connect(negative_availability_changes) loan_state_changed.connect(listener_loan_state_changed, weak=False) oaiharvest_finished.connect(publish_harvested_records, weak=False) apiharvest_part.connect(publish_api_harvested_records, weak=False) # invenio-userprofiles signal after_profile_update.connect(update_from_profile) # store the username in the session user_logged_in.connect(set_user_name) user_logged_out.connect(remove_user_name) user_loaded_from_cookie.connect(set_user_name)
def register_signals(self): """Register signals.""" before_record_index.connect(enrich_loan_data) before_record_index.connect(enrich_document_data) before_record_index.connect(enrich_item_data) before_record_index.connect(enrich_patron_data) before_record_index.connect(enrich_location_data) before_record_index.connect(enrich_holding_data) before_record_index.connect(enrich_notification_data) loan_state_changed.connect(listener_loan_state_changed, weak=False) oaiharvest_finished.connect(publish_harvested_records, weak=False) apiharvest_part.connect(publish_api_harvested_records, weak=False) after_record_insert.connect(mef_person_insert) after_record_update.connect(mef_person_update) after_record_delete.connect(mef_person_delete) after_record_revert.connect(mef_person_revert)
def test_signals_loan_request(loan_created, params): """Test signal for loan request action.""" recorded = [] def record_signals(_, initial_loan, loan, trigger, **kwargs): recorded.append((initial_loan, loan, trigger, kwargs)) loan_state_changed.connect(record_signals, weak=False) assert len(recorded) == 0 current_circulation.circulation.trigger( loan_created, **dict( params, trigger="request", pickup_location_pid="pickup_location_pid", )) assert len(recorded) == 1 initial_loan, updated_loan, trigger, kwargs = recorded.pop() assert initial_loan["state"] == "CREATED" assert updated_loan["state"] == "PENDING" assert trigger == "request"
def test_signals_loan_request(loan_created, db, params): """Test signal for loan request action.""" recorded = [] def record_signals(_, prev_loan, loan, trigger): recorded.append((prev_loan, loan, trigger)) loan_state_changed.connect(record_signals, weak=False) assert len(recorded) == 0 current_circulation.circulation.trigger( loan_created, **dict( params, trigger="request", pickup_location_pid="pickup_location_pid", ) ) db.session.commit() assert len(recorded) == 1 prev_loan, updated_loan, trigger = recorded.pop() assert prev_loan["state"] == "CREATED" assert updated_loan["state"] == "PENDING" assert trigger == "request"