from django.test import TestCase

from coupons.forms import CouponGenerationForm, CouponForm
from coupons.models import Coupon

class CouponGenerationFormTestCase(TestCase):
    def test_form(self):
        form_data = {'quantity': 23, 'value': 42, 'type': 'monetary'}
        form = CouponGenerationForm(data=form_data)
        self.assertTrue(form.is_valid())

class CouponFormTestCase(TestCase):
    def setUp(self):
        self.coupon = Coupon.objects.create_coupon('monetary', 100)

    def test_wrong_code(self):
        form_data = {'code': 'foo'}
        form = CouponForm(data=form_data)
        self.assertFalse(form.is_valid())

    def test_right_code(self):
        form_data = {'code': self.coupon.code}
        form = CouponForm(data=form_data)
        self.assertTrue(form.is_valid())


@@ -776,28 +776,209 @@
 ssertTrue(form.is_valid())%0A%0A
+    def test_types(self):%0A        form_data = %7B'code': self.coupon.code%7D%0A        form = CouponForm(data=form_data, types=('percentage',))%0A        self.assertFalse(form.is_valid())%0A%0A

add test for type limitation