| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- from django.core.urlresolvers import reverse
- from oscar_testsupport import testcases, factories
-
- from oscar.apps.offer import models
-
-
- class TestAnAdmin(testcases.WebTestCase):
- # New version of offer tests buy using WebTest
- is_staff = True
-
- def setUp(self):
- super(TestAnAdmin, self).setUp()
- self.range = models.Range.objects.create(
- name="All products", includes_all_products=True)
-
- def test_can_create_an_offer(self):
- list_page = self.get(reverse('dashboard:offer-list'))
-
- metadata_page = list_page.click('Create new offer')
- metadata_form = metadata_page.form
- metadata_form['name'] = "Test offer"
- metadata_form['start_date'] = "2012-01-01"
- metadata_form['end_date'] = "2014-01-01"
-
- condition_page = metadata_form.submit().follow()
- condition_form = condition_page.form
- condition_form['range'] = self.range.id
- condition_form['type'] = "Count"
- condition_form['value'] = "3"
-
- benefit_page = condition_form.submit().follow()
- benefit_form = benefit_page.form
- benefit_form['range'] = self.range.id
- benefit_form['type'] = "Percentage"
- benefit_form['value'] = "25"
-
- preview_page = benefit_form.submit().follow()
- preview_page.form.submit()
-
- offers = models.ConditionalOffer.objects.all()
- self.assertEqual(1, len(offers))
- offer = offers[0]
- self.assertEqual("Test offer", offer.name)
- self.assertEqual(3, offer.condition.value)
- self.assertEqual(25, offer.benefit.value)
-
- def test_can_update_an_existing_offer(self):
- factories.create_offer(name="Offer A")
-
- list_page = self.get(reverse('dashboard:offer-list'))
- detail_page = list_page.click('Offer A')
-
- metadata_page = detail_page.click(linkid="edit_metadata")
- metadata_form = metadata_page.form
- metadata_form['name'] = "Offer A+"
-
- condition_page = metadata_form.submit().follow()
- condition_form = condition_page.form
-
- benefit_page = condition_form.submit().follow()
- benefit_form = benefit_page.form
-
- preview_page = benefit_form.submit().follow()
- preview_page.form.submit()
-
- models.ConditionalOffer.objects.get(name="Offer A+")
-
- def test_can_jump_to_intermediate_step_for_existing_offer(self):
- offer = factories.create_offer()
- url = reverse('dashboard:offer-condition',
- kwargs={'pk': offer.id})
- self.assertEqual(200, self.get(url).status_code)
-
- def test_cannot_jump_to_intermediate_step(self):
- for url_name in ('dashboard:offer-condition',
- 'dashboard:offer-benefit',
- 'dashboard:offer-preview'):
- response = self.get(reverse(url_name))
- self.assertEqual(302, response.status_code)
-
- def test_can_suspend_an_offer(self):
- # Create an offer
- offer = factories.create_offer()
- self.assertFalse(offer.is_suspended)
-
- detail_page = self.get(reverse('dashboard:offer-detail',
- kwargs={'pk': offer.pk}))
- form = detail_page.forms['status_form']
- form.submit('suspend')
-
- reloaded_offer = models.ConditionalOffer.objects.get(pk=offer.pk)
- self.assertTrue(reloaded_offer.is_suspended)
-
- def test_can_reinstate_a_suspended_offer(self):
- # Create a suspended offer
- offer = factories.create_offer()
- offer.suspend()
- self.assertTrue(offer.is_suspended)
-
- detail_page = self.get(reverse('dashboard:offer-detail',
- kwargs={'pk': offer.pk}))
- form = detail_page.forms['status_form']
- form.submit('unsuspend')
-
- reloaded_offer = models.ConditionalOffer.objects.get(pk=offer.pk)
- self.assertFalse(reloaded_offer.is_suspended)
|