2016-10-17 17 views
0

Django REST Frameworkを使用してAPIを開発中です。 私はmodels.ImageFieldのDjangoモデルを持っています。 しかし、私はモデルオブジェクトを作成unittestのしたいとき、私はエラーを取得:Djangoのテスト中に画像ファイルをアップロードできません

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte 

は私のコード:

class PlacesTest(APITestCase): 

    . . . 

    def test_create_place_full(self): 
     . . . 
     image = SimpleUploadedFile(name='test.jpg', 
            content=open('test.png', 'rb').read(), 
            content_type='image/jpeg') 

     request = self.factory.post(reverse('place-list'), 
            {'name': 'test_place_1', 
            'picture': image, 
            }) 

私は、画像へのパスでstringを渡して試してみました、と私はDjango testing model with ImageFieldからメソッドを試してみましたテストを行うが成功しない。

イメージを追加するときに、Django RESTフレームワークに渡すべき型はファイルオブジェクトか文字列ですか?

テストに実際のファイルを追加するにはどうすればよいですか?

私は必要なすべてのリクエスト引数でformat='multipart'指定された:私のプロジェクトで

request = self.factory.post(reverse('place-list'), 
           {'name': 'test_place_1', 
           'picture': self.image}, 
           format='multipart') 

をした

REST_FRAMEWORK = { 
    ... 
    'TEST_REQUEST_DEFAULT_FORMAT': 'json' 
} 

ありませんので、画像、誰かが興味を持っている場合は、私の問題の解決策を見つけた

答えて

1

POST要求に追加することができます。

関連する問題