Example #1
0
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"
Example #2
0
File: ext.py Project: jma/rero-ils
    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"
Example #4
0
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
    )
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
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"