2017-12-15 7 views
1

:私は、APIClientのポストを使用してテスト複数のファイルのアップロードDjangoの残りのフレームワーク私は駆動開発をテストするために新たなんだとそうのようなエンドポイントをテストしようとしていた

をモデルで

class EDMListViewSet(viewsets.ModelViewSet): 
    queryset = EDMList.objects.all() 
    serializer_class = EDMListSerializer 

:私のモデルのビューセットにPOSTリクエストを送信する

class EDMList(models.Model): 
    tickers = models.CharField(max_length=512) 
    email_list = models.FileField(upload_to='edm_list/consolidated_emails') 
    exclude_list = models.FileField(upload_to='edm_list/excluded_emails') 
    exclude_keywords = models.CharField(max_length=512) 
    similar_user_num = models.IntegerField() 

そして、シリアライザ:

class EDMListSerializer(serializers.HyperlinkedModelSerializer): 
    class Meta: 
     model = EDMList 
     fields = ('tickers', 'email_list', 'exclude_list', 'exclude_keywords', 'similar_user_num') 

私は私のテストを実行するたびに今、それが返されます。

Traceback (most recent call last): 
    self.assertEqual(response.status_code, status.HTTP_200_OK) 
AssertionError: 400 != 200 

しかし、私は閲覧可能なAPIを開き、そこに投稿する時はいつでも、私は正常に動作します。 私はクライアントの投稿をどのように使用するのかという問題を推測していますが、何が間違っているのか分かりません。

+0

あなたはマルチパート形式で試すことができますか? 'c.post(url、data、format = 'multipart')' –

+0

@GabrielMujお返事ありがとうございます!残念ながら私はすでにこれを試しましたが、それでも状態コード400になります。 – Castle

+0

私は結局コードを完成させましたが、私はTDD方法をプログラミングしないことに再発しました。私はまだこの仕事をしたいと思っていた、私はちょうど方法を知らない。 – Castle

答えて

0

私はそれが誤植であることを認めてとても恥ずかしいです。これに

data = { 
      'exlude_list': exl, 
      'simular_user_num': similar_user_num 
     } 

::このことから

data = { 
      'exclude_list': exl, 
      'similar_user_num': similar_user_num 
     } 
+0

それは私たち全員に起こります:) –

関連する問題