2009-08-12 5 views
0

이 내 테스트 코드입니다 :단위 테스트는

def test_import_data(self): 
     f = open('commend/fixtures/Book2.xls') 
     postdata = {'datatype':'intonetwork','datafile':f} 
     response = self.client.post('/commend/saledata/import_data/',postdata) 
     self.failUnlessEqual(response.status_code, 200) 

하지만보기 코드 :

file = request.FILES['datafile'] 
size = file.size 

6.

그래서 내가 클라이언트를 디버깅에만 동일한 크기 . 포스트 코드 :

def encode_file(boundary, key, file): 
    to_str = lambda s: smart_str(s, settings.DEFAULT_CHARSET) 
    return [ 
     '--' + boundary, 
     'Content-Disposition: form-data; name="%s"; filename="%s"' \ 
      % (to_str(key), to_str(os.path.basename(file.name))), 
     'Content-Type: application/octet-stream', 
     '', 
     file.read() 
    ] 

내가 통신을 열었을 때 끝/고정 장치/Book2.xls.

>>> f = open("commend/fixtures/Book2.xls") 
>>> f.read() 

'\ XD0 \ XCF \ X11 \ xe0 \ XA1 \ xb1'

>>> f.read() 

'\ x00부터 \ xb9 \ XA4 \ xd7 \ xf7 \ xb1 \ 고정 된 \ x00부터 \ X03 \ x00에서 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x0 0 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x03 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 0 \ x00 \ x0 0 \ x00 \ x00 \ x00 \ x00 \ x01 \ x00 \ xfe \ x01 \ x03 \ n \ x00 \ x00 \ xff \ xff \ xff \ xff \ x08 \ x02 \ x00 \ x00 \ x00 \ x00 \ x00 \ xc0 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00F # \ x00 \ x00 \ x00Microsoft Office Excel 200 3 \ xb9 \ xa4 \ xd7 \ xf7 \ xb1 \ xed \ x00 \ x06 \ x00 \ x00 \ x00biff8 \ x00 \ x0e \ x00 \ x00 \ x00Excel.She et.8 \ x00 \ xf49 \ xb2q \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x ..................... ...

처음 f.read()를 입력하면 전체 xls 문서 콘텐츠가 아닌 '\ xd0 \ xcf \ x11 \ xe0 \ xcf \ x11 \ xe0 \ xa1 \ xb1'을 출력합니다.

어떻게하면됩니까? 바이너리 모드로 파일을 열

답변

2

봅니다 :

f = open('commend/fixtures/Book2.xls', 'rb') 
0

나는이 유니 코드로 읽는 것 같아요. 테스트를 위해서 xls 파일을 다른 형식으로 저장하고 어떻게되는지보십시오. Here 파이썬에서 유니 코드 문제가 드러납니다.

관련 문제