def test_checkout_discount_form_not_applicable_voucher(monkeypatch, voucher): checkout = Mock(cart=Mock()) form = CheckoutDiscountForm({'voucher': voucher.code}, checkout=checkout) monkeypatch.setattr( 'saleor.discount.forms.get_voucher_discount_for_checkout', Mock(side_effect=NotApplicable('Not applicable'))) assert not form.is_valid() assert 'voucher' in form.errors
def test_invalid_checkout_discount_form(monkeypatch, voucher): checkout = Mock(cart=Mock()) form = CheckoutDiscountForm({'voucher': voucher.code}, checkout=checkout) monkeypatch.setattr( 'saleor.discount.forms.get_voucher_discount_for_checkout', Mock(side_effect=NotApplicable('Not applicable'))) assert not form.is_valid() assert 'voucher' in form.errors
def test_checkout_discount_form_active_queryset_voucher_active(voucher): assert len(Voucher.objects.all()) == 1 checkout = Mock(cart=Mock()) voucher.start_date = date.today() voucher.save() form = CheckoutDiscountForm({'voucher': voucher.code}, checkout=checkout) qs = form.fields['voucher'].queryset assert len(qs) == 1
def test_checkout_discount_form_active_queryset_voucher_not_active(voucher): assert Voucher.objects.count() == 1 checkout = Mock(cart=Mock()) voucher.start_date = date.today() + timedelta(days=1) voucher.save() form = CheckoutDiscountForm({'voucher': voucher.code}, checkout=checkout) qs = form.fields['voucher'].queryset assert qs.count() == 0
def test_checkout_discount_form_active_queryset_after_some_time(voucher): assert len(Voucher.objects.all()) == 1 checkout = Mock(cart=Mock()) voucher.start_date = date(year=2016, month=6, day=1) voucher.end_date = date(year=2016, month=6, day=2) voucher.save() with freeze_time('2016-05-31'): form = CheckoutDiscountForm( {'voucher': voucher.code}, checkout=checkout) assert len(form.fields['voucher'].queryset) == 0 with freeze_time('2016-06-01'): form = CheckoutDiscountForm( {'voucher': voucher.code}, checkout=checkout) assert len(form.fields['voucher'].queryset) == 1 with freeze_time('2016-06-03'): form = CheckoutDiscountForm( {'voucher': voucher.code}, checkout=checkout) assert len(form.fields['voucher'].queryset) == 0
def test_checkout_discount_form_invalid_voucher_code(monkeypatch): checkout = Mock(cart=Mock()) form = CheckoutDiscountForm({'voucher': 'invalid'}, checkout=checkout) assert not form.is_valid() assert 'voucher' in form.errors