kay-frameworkでファイルアップロードのテストを書く

ZIPのアップローダーを作った時に悩んだ箇所です。


from werkzeug import BaseResponse, Client
from kay.app import get_application
from kay.ext.testutils.gae_test_base import GAETestBase
from StringIO import StringIO

class HogeTest(GAETestBase): def setUp(self): app = get_application() self.client = Client(app, BaseResponse)

def test_file_upload(self): response = self.client.open( path='/', method='POST', data={ 'foo': 'bar', 'file': (StringIO('hogehoge'), 'filename.txt'), }, content_type='multipart/form-data' ) self.assertEquals(response.status_code, 200)

みたいな感じでうまくいきました。


ZIPの場合はバイナリデータなので、base64エンコードしてソースにベタ書きしておいてbase64デコードしたものをStringIOの引数に入れてやっています。


ものによってはZIPが壊れるんだけど原因はわかりません。

This entry was posted on Saturday, 05 March, 2011.

Tags: ,