2

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)

しかし、うまくいきません。

提案をありがとう

4

0 に答える 0