我如何从CreateView类测试form_valid方法

时间:2013-09-12 02:26:17

标签: django unit-testing django-tests

我有一个继承CreateView

的Class视图
class CreateErrandView(ErrandFormMixin, CreateView):
    form_class = ErrandForm

    @method_decorator(ensure_csrf_cookie)
    def dispatch(self, *args, **kwargs):
        print("passes through here")
        return super(CreateErrandView, self).dispatch(*args, **kwargs)

    def form_valid(self, form, formset):
        print("create some transactions")
        print("not pass through here")
        return super(CreateErrandView, self).form_valid(form, formset)

    def post(self, *args, **kwargs):
        print("passes through here")
        return super(CreateErrandView, self).post(*args, **kwargs)

我需要编写一个测试来发布帖子并执行form_valid方法

我写了

class ErrandTransactionsTest(TestCase):

    def setUp(self):
        self.c = Client()

    def test__test_valid_form(self):
        # Arrange
        form_data = {
            u'type': 'taxi'
        }  

        form = ErrandForm(data=form_data)

        # Act
        self.assertEqual(form.is_valid(), True)
        response = self.c.post(reverse('errands_create'), form_data)

        # Assert
        self.assertEqual(len(Transactions.objects.all()), 5)

但它不起作用。

感谢您的任何建议

0 个答案:

没有答案