Exemplo n.º 1
0
    def test_users_are_sorted_by_user_id(self):
        # given
        user1 = users_factories.BeneficiaryGrant18Factory()
        user2 = users_factories.BeneficiaryGrant18Factory()

        # when
        balances = get_all_users_wallet_balances()

        # then
        assert len(balances) == 2
        assert [b.user_id for b in balances] == [user1.id, user2.id]
Exemplo n.º 2
0
    def test_users_with_no_deposits_are_ignored(self):
        # given
        user1 = users_factories.BeneficiaryGrant18Factory()
        user2 = users_factories.BeneficiaryGrant18Factory()
        repository.delete(user2.deposit)

        # when
        balances = get_all_users_wallet_balances()

        # then
        assert len(balances) == 1
        assert balances[0].user_id == user1.id
Exemplo n.º 3
0
def send_wallet_balances(recipients: List[str]) -> None:
    if not recipients:
        raise Exception(
            "[BATCH][PAYMENTS] Missing PASS_CULTURE_WALLET_BALANCES_RECIPIENTS in environment variables"
        )

    balances = get_all_users_wallet_balances()
    csv = generate_wallet_balances_csv(balances)
    logger.info("[BATCH][PAYMENTS] Sending %s wallet balances", len(balances))
    logger.info("[BATCH][PAYMENTS] Recipients of email : %s", recipients)
    try:
        send_wallet_balances_email(csv, recipients)
    except MailServiceException as exception:
        logger.exception(
            "[BATCH][PAYMENTS] Error while sending users wallet balances email to MailJet: %s",
            exception)
Exemplo n.º 4
0
    def test_users_with_no_deposits_are_ignored(self, app):
        # given
        user1 = create_user(email="*****@*****.**")
        user2 = create_user(email="*****@*****.**")
        offerer = create_offerer()
        venue = create_venue(offerer)
        offer = create_offer_with_thing_product(venue)
        stock3 = create_stock(offer=offer, price=40)
        repository.save(stock3, user1, user2)

        _create_balances_for_user2(stock3, user2, venue)

        # when
        balances = get_all_users_wallet_balances()

        # then
        assert len(balances) == 1
Exemplo n.º 5
0
    def test_returns_real_balances(self, app):
        # given
        user1 = create_user(email="*****@*****.**")
        user2 = create_user(email="*****@*****.**")
        offerer = create_offerer()
        venue = create_venue(offerer)
        offer = create_offer_with_thing_product(venue)
        stock1 = create_stock(offer=offer, price=20)
        stock2 = create_stock(offer=offer, price=30)
        stock3 = create_stock(offer=offer, price=40)
        repository.save(stock1, stock2, stock3, user1, user2)

        _create_balances_for_user1(stock1, stock2, stock3, user1, venue)
        _create_balances_for_user2(stock3, user2, venue)

        # when
        balances = get_all_users_wallet_balances()

        # then
        assert balances[0].real_balance == 90
        assert balances[1].real_balance == 200
Exemplo n.º 6
0
    def test_returns_both_current_and_real_balances(self):
        # given
        offer = offers_factories.OfferFactory()
        stock1 = offers_factories.StockFactory(offer=offer, price=20)
        stock2 = offers_factories.StockFactory(offer=offer, price=30)
        stock3 = offers_factories.StockFactory(offer=offer, price=40)
        user = users_factories.BeneficiaryGrant18Factory(deposit__version=1)

        bookings_factories.IndividualBookingFactory(
            individualBooking__user=user, stock=stock1)
        bookings_factories.CancelledIndividualBookingFactory(
            individualBooking__user=user, stock=stock2)
        bookings_factories.UsedIndividualBookingFactory(
            individualBooking__user=user, stock=stock3, quantity=2)

        # when
        balances = get_all_users_wallet_balances()

        # then
        balance = balances[0]
        assert balance.current_balance == 500 - (20 + 40 * 2)
        assert balance.real_balance == 500 - (40 * 2)
    def test_returns_both_current_and_real_balances(self):
        # given
        offer = offers_factories.OfferFactory()
        stock1 = offers_factories.StockFactory(offer=offer, price=20)
        stock2 = offers_factories.StockFactory(offer=offer, price=30)
        stock3 = offers_factories.StockFactory(offer=offer, price=40)
        user = users_factories.UserFactory(deposit__version=1)

        bookings_factories.BookingFactory(user=user, stock=stock1)
        bookings_factories.BookingFactory(user=user,
                                          stock=stock2,
                                          isCancelled=True)
        bookings_factories.BookingFactory(user=user,
                                          stock=stock3,
                                          isUsed=True,
                                          quantity=2)

        # when
        balances = get_all_users_wallet_balances()

        # then
        balance = balances[0]
        assert balance.current_balance == 500 - (20 + 40 * 2)
        assert balance.real_balance == 500 - (40 * 2)