def test_save_edit(self): """ Previously-created ConditionalOffer, Benefit, and Condition instances should be updated. """ offer = factories.ProgramOfferFactory() data = self.generate_data(program_uuid=offer.condition.program_uuid, benefit_type=Benefit.FIXED) self.mock_program_detail_endpoint(data['program_uuid'], self.site_configuration.discovery_api_url) form = ProgramOfferForm(request=self.request, data=data, instance=offer) form.is_valid() form.save() offer.refresh_from_db() self.assert_program_offer_conditions(offer, data['program_uuid'], data['benefit_value'], data['benefit_type'], 'Discount for the Test Program MicroMockers Program')
def test_save_create(self): """ A new ConditionalOffer, Benefit, and Condition should be created. """ data = self.generate_data() self.mock_program_detail_endpoint(data['program_uuid'], self.site_configuration.discovery_api_url) form = ProgramOfferForm(request=self.request, data=data) form.is_valid() offer = form.save() self.assert_program_offer_conditions(offer, data['program_uuid'], data['benefit_value'], data['benefit_type'], 'Discount for the Test Program MicroMockers Program')
def test_save_offer_name(self): """ If a request object is sent, the offer name should include program title and type. """ data = self.generate_data() self.mock_program_detail_endpoint(data['program_uuid'], self.site_configuration.discovery_api_url) form = ProgramOfferForm(request=self.request, data=data) form.is_valid() offer = form.save() self.assert_program_offer_conditions(offer, data['program_uuid'], data['benefit_value'], data['benefit_type'], 'Discount for the Test Program MicroMockers Program')
def test_save_without_commit(self): """ No data should be persisted to the database if the commit kwarg is set to False. """ data = self.generate_data() form = ProgramOfferForm(request=self.request, data=data) self.mock_program_detail_endpoint(data['program_uuid'], self.site_configuration.discovery_api_url) form.is_valid() instance = form.save(commit=False) self.assertIsNone(instance.pk) self.assertFalse(hasattr(instance, 'benefit')) self.assertFalse(hasattr(instance, 'condition'))
def test_save_create(self): """ A new ConditionalOffer, Benefit, and Condition should be created. """ data = self.generate_data() self.mock_program_detail_endpoint(data['program_uuid']) form = ProgramOfferForm(request=self.request, data=data) form.is_valid() offer = form.save() self.assert_program_offer_conditions(offer, data['program_uuid'], data['benefit_value'], data['benefit_type'])
def test_save_offer_name(self): """ If a request object is sent, the offer name should include program title and type. """ data = self.generate_data() self.mock_program_detail_endpoint(data['program_uuid']) form = ProgramOfferForm(request=self.request, data=data) form.is_valid() offer = form.save() self.assert_program_offer_conditions(offer, data['program_uuid'], data['benefit_value'], data['benefit_type'])
def test_save_create_special_char_title(self): """ When the title is international, A new ConditionalOffer, Benefit, and Condition should still be created.""" data = self.generate_data() self.mock_program_detail_endpoint(data['program_uuid'], self.site_configuration.discovery_api_url, title=u'Sp\xe1nish Program') form = ProgramOfferForm(request=self.request, data=data) form.is_valid() offer = form.save() self.assert_program_offer_conditions(offer, data['program_uuid'], data['benefit_value'], data['benefit_type'], 'Discount for the Spánish Program MicroMockers Program')