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