| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- from datetime import timedelta
-
- import pytest
- from django import test
- from django.utils import timezone
-
- from oscar.apps.dashboard.vouchers import forms
- from oscar.test.factories.offer import RangeFactory
-
-
- class TestVoucherForm(test.TestCase):
-
- def test_doesnt_crash_on_empty_date_fields(self):
- """
- There was a bug fixed in 02b3644 where the voucher form would raise an
- exception (instead of just failing validation) when being called with
- empty fields. This tests exists to prevent a regression.
- """
- data = {
- 'code': '',
- 'name': '',
- 'start_date': '',
- 'end_date': '',
- 'benefit_range': '',
- 'benefit_type': 'Percentage',
- 'usage': 'Single use',
- }
- form = forms.VoucherForm(data=data)
- try:
- form.is_valid()
- except Exception as e:
- import traceback
- self.fail(
- "Exception raised while validating voucher form: %s\n\n%s" % (
- e.message, traceback.format_exc()))
-
-
- @pytest.mark.django_db
- class TestVoucherSetForm:
-
- def test_valid_form(self):
- a_range = RangeFactory(includes_all_products=True)
-
- start = timezone.now()
- end = start + timedelta(days=1)
- data = {
- 'name': 'test',
- 'code_length': 12,
- 'description': 'test',
- 'start_datetime': start,
- 'end_datetime': end,
- 'count': 10,
- 'benefit_range': a_range.pk,
- 'benefit_type': 'Percentage',
- 'benefit_value': 10,
- }
- form = forms.VoucherSetForm(data=data)
- assert form.is_valid()
- instance = form.save()
- assert instance.count == instance.vouchers.count()
- assert instance.start_datetime == start
- assert instance.end_datetime == end
|