2017-08-26 36 views
1

我在我的系统下面的Django代码:如何编写一个从zip文件创建InMemoryUploadedFile的python测试?

zip_file = zipfile.ZipFile(file, 'r') 
for filename in zip_file.namelist(): 
    try: 
     file_read = zip_file.read(filename) 
     print(filename) 

我想在一个zip文件传递从蟒蛇测试用例来测试该代码。当我在web界面中使用这段代码时,我注意到zip文件是一个InMemoryUploadedFile类型。所以我试图用我的TestCase模仿这个功能,但似乎无法在我的测试中用zip文件创建一个InMemoryUploadedFile()。

我已经试过这样:

file_name = 'file.zip' 
in_memory_uploaded_file = InMemoryUploadedFile(file_name, None, file_name, 'application/zip', 0, None, None) 

任何建议?

+0

的技术不能送你一个zip文件到您的API,然后检查? –

回答

0

按照sourceInMemoryUploadedFileInMemoryUploadedFile(file, field_name, name, content_type, size, charset, [content_type_extra])

所以叫,你应该通过所有这些参数:

with file as open('file.zip', 'r'): 
    InMemoryUploadedFile(file, relevant_field,'arquivo', 
         'application/zip', file_size, 'utf8') 

对于文件的大小,你可以使用固定数量的测试,或者如果需要的话使用https://stackoverflow.com/a/19079887/3930971

f.seek(0, os.SEEK_END) 
size = f.tell() 
f.seek(0, os.SEEK_SET) 
相关问题