Example #1
0
 def _assert_form_errors(self, data, expected_errors):
     """
     Assert that form validation fails with the expected errors.
     """
     form = JournalBundleOfferForm(data=data)
     self.assertFalse(form.is_valid())
     self.assertEqual(form.errors, expected_errors)
Example #2
0
 def test_save_without_commit(self, mock_discovery_call):
     """
     No data should be persisted to the database if the commit kwarg is set to False.
     """
     mock_discovery_call.return_value = {"title": "test-journal"}
     data = self.generate_data()
     form = JournalBundleOfferForm(request=self.request, data=data)
     form.is_valid()
     instance = form.save(commit=False)
     self.assertIsNone(instance)
Example #3
0
 def test_save_create(self, mock_discovery_call):
     """
     A new ConditionalOffer, Benefit, and Condition should be created.
     """
     mock_discovery_call.return_value = {"title": "test-journal"}
     data = self.generate_data()
     form = JournalBundleOfferForm(request=self.request, data=data)
     form.is_valid()
     offer = form.save()
     self._assert_journal_bundle_offer_conditions(
         offer, data['journal_bundle_uuid'], data['benefit_value'],
         data['benefit_type'], 'Journal Bundle Offer: test-journal')
Example #4
0
 def test_create_when_conditional_offer_with_uuid_exists(self):
     """
     Verify a journal bundle offer can be created if a conditional offer with different type and same uuid already
     exists.
     """
     data = self.generate_data()
     ConditionalOfferFactory(
         benefit=PercentageDiscountBenefitWithoutRangeFactory(),
         condition__journal_bundle_uuid=data['journal_bundle_uuid'],
         offer_type=ConditionalOffer.VOUCHER,
     )
     form = JournalBundleOfferForm(request=self.request, data=data)
     self.assertTrue(form.is_valid())
Example #5
0
 def test_init(self):
     """
     Assert the init data from instance.
     """
     journal_offer = ConditionalOfferFactory(
         benefit=PercentageDiscountBenefitWithoutRangeFactory(),
         condition=JournalConditionFactory())
     form = JournalBundleOfferForm(instance=journal_offer)
     self.assertEqual(form['journal_bundle_uuid'].value(),
                      journal_offer.condition.journal_bundle_uuid.hex)
     self.assertEqual(form['benefit_type'].value(),
                      journal_offer.benefit.proxy().benefit_class_type)
     self.assertEqual(form['benefit_value'].value(),
                      journal_offer.benefit.value)
Example #6
0
    def test_save_edit(self, mock_discovery_call):
        """
        Previously-created ConditionalOffer, Benefit, and Condition instances should be updated.
        """
        mock_discovery_call.return_value = {"title": "test-journal"}
        journal_offer = ConditionalOfferFactory(
            benefit=PercentageDiscountBenefitWithoutRangeFactory(),
            condition=JournalConditionFactory())
        data = self.generate_data(
            journal_bundle_uuid=journal_offer.condition.journal_bundle_uuid,
            benefit_type=Benefit.FIXED)
        form = JournalBundleOfferForm(request=self.request,
                                      data=data,
                                      instance=journal_offer)
        form.is_valid()
        form.save()

        journal_offer.refresh_from_db()
        self._assert_journal_bundle_offer_conditions(
            journal_offer, data['journal_bundle_uuid'], data['benefit_value'],
            data['benefit_type'], 'Journal Bundle Offer: test-journal')