def test_raise_if_deposit_expired(self): yesterday = datetime.now() - timedelta(days=1) beneficiary = self._get_beneficiary(deposit__expirationDate=yesterday) offer = offers_factories.OfferFactory( product__subcategoryId=subcategories.ACHAT_INSTRUMENT.id) with pytest.raises(exceptions.UserHasInsufficientFunds): validation.check_expenses_limits(beneficiary, 10, offer)
def test_physical_limit_on_uncapped_type(self): beneficiary = self._get_beneficiary() offer = offers_factories.OfferFactory(product__type=str(ThingType.CINEMA_ABO)) factories.BookingFactory(user=beneficiary, stock__price=290, stock__offer=offer) # should not raise because CINEMA_ABO is not capped validation.check_expenses_limits(beneficiary, 11, offer)
def test_digital_limit_on_uncapped_type(self): beneficiary = self._get_beneficiary() product = offers_factories.DigitalProductFactory(type=str(ThingType.OEUVRE_ART)) offer = offers_factories.OfferFactory(product=product) factories.BookingFactory(user=beneficiary, stock__price=190, stock__offer=offer) # should not raise because OEUVRE_ART is not capped validation.check_expenses_limits(beneficiary, 11, offer)
def test_physical_limit(self): beneficiary = self._get_beneficiary() offer = offers_factories.OfferFactory( product__subcategoryId=subcategories.ACHAT_INSTRUMENT.id) factories.IndividualBookingFactory(individualBooking__user=beneficiary, stock__price=290, stock__offer=offer) validation.check_expenses_limits(beneficiary, 10, offer) # should not raise
def test_physical_limit_on_uncapped_type(self): beneficiary = self._get_beneficiary() offer = offers_factories.OfferFactory( product__subcategoryId=subcategories.SEANCE_CINE.id) factories.IndividualBookingFactory(individualBooking__user=beneficiary, stock__price=190, stock__offer=offer) # should not raise because SEANCE_CINE is not capped validation.check_expenses_limits(beneficiary, 11, offer)
def test_digital_limit_on_uncapped_type(self): beneficiary = self._get_beneficiary() product = offers_factories.DigitalProductFactory( subcategoryId=subcategories.OEUVRE_ART.id) offer = offers_factories.OfferFactory(product=product) factories.IndividualBookingFactory(individualBooking__user=beneficiary, stock__price=190, stock__offer=offer) # should not raise because OEUVRE_ART is not capped validation.check_expenses_limits(beneficiary, 11, offer)
def test_global_limit(self): beneficiary = self._get_beneficiary() factories.BookingFactory(user=beneficiary, stock__price=290) offer = offers_factories.OfferFactory(type=str(ThingType.CINEMA_ABO)) validation.check_expenses_limits(beneficiary, 10, offer) # should not raise with pytest.raises(exceptions.UserHasInsufficientFunds) as error: validation.check_expenses_limits(beneficiary, 11, offer) assert error.value.errors["insufficientFunds"] == [ "Le solde de votre pass est insuffisant pour réserver cette offre." ]
def test_physical_limit(self): beneficiary = self._get_beneficiary() offer = offers_factories.OfferFactory(product__type=str(ThingType.INSTRUMENT)) factories.BookingFactory(user=beneficiary, stock__price=290, stock__offer=offer) validation.check_expenses_limits(beneficiary, 10, offer) # should not raise with pytest.raises(exceptions.PhysicalExpenseLimitHasBeenReached) as error: validation.check_expenses_limits(beneficiary, 11, offer) assert error.value.errors["global"] == [ "Le plafond de 300 € pour les biens culturels ne vous permet pas de réserver cette offre." ]
def test_global_limit(self): beneficiary = self._get_beneficiary() factories.IndividualBookingFactory(individualBooking__user=beneficiary, stock__price=290) offer = offers_factories.OfferFactory( subcategoryId=subcategories.CARTE_CINE_ILLIMITE.id) validation.check_expenses_limits(beneficiary, 10, offer) # should not raise with pytest.raises(exceptions.UserHasInsufficientFunds) as error: validation.check_expenses_limits(beneficiary, 11, offer) assert error.value.errors["insufficientFunds"] == [ "Le solde de votre pass est insuffisant pour réserver cette offre." ]
def test_digital_limit(self): beneficiary = self._get_beneficiary() product = offers_factories.DigitalProductFactory(type=str(ThingType.AUDIOVISUEL)) offer = offers_factories.OfferFactory(product=product) factories.BookingFactory( user=beneficiary, stock__price=90, stock__offer=offer, ) validation.check_expenses_limits(beneficiary, 10, offer) # should not raise with pytest.raises(exceptions.DigitalExpenseLimitHasBeenReached) as error: validation.check_expenses_limits(beneficiary, 11, offer) assert error.value.errors["global"] == [ "Le plafond de 100 € pour les offres numériques ne vous permet pas de réserver cette offre." ]
def test_physical_limit(self): beneficiary = self._get_beneficiary() offer = offers_factories.OfferFactory( product__subcategoryId=subcategories.ACHAT_INSTRUMENT.id) factories.IndividualBookingFactory(individualBooking__user=beneficiary, stock__price=190, stock__offer=offer) validation.check_expenses_limits(beneficiary, 10, offer) # should not raise with pytest.raises( exceptions.PhysicalExpenseLimitHasBeenReached) as error: validation.check_expenses_limits(beneficiary, 11, offer) assert error.value.errors["global"] == [ "Le plafond de 200 € pour les biens culturels ne vous permet pas de réserver cette offre." ]
def test_digital_limit(self): beneficiary = self._get_beneficiary() product = offers_factories.DigitalProductFactory( subcategoryId=subcategories.VOD.id) offer = offers_factories.OfferFactory(product=product) factories.IndividualBookingFactory( individualBooking__user=beneficiary, stock__price=190, stock__offer=offer, ) validation.check_expenses_limits(beneficiary, 10, offer) # should not raise with pytest.raises( exceptions.DigitalExpenseLimitHasBeenReached) as error: validation.check_expenses_limits(beneficiary, 11, offer) assert error.value.errors["global"] == [ "Le plafond de 200 € pour les offres numériques ne vous permet pas de réserver cette offre." ]
def test_physical_limit(self): beneficiary = self._get_beneficiary() offer = offers_factories.OfferFactory(product__type=str(ThingType.INSTRUMENT)) factories.BookingFactory(user=beneficiary, stock__price=290, stock__offer=offer) validation.check_expenses_limits(beneficiary, 10, offer) # should not raise