如何使用GAE dev服务器testbed for python模拟文件上传到blobstore

时间:2012-06-03 13:59:17

标签: python unit-testing google-app-engine blobstore

我想写一些单元测试,其中包括read a blobstore file

如何编写一个单元测试setUp,将一些文件放在testbed blobstore中,以便以这种方式读取它:

blob_info = BlobInfo(blob_key)
reader = BlobReader(blob_info)
reader.readline()

修改

我不寻找测试files API的方法,我想在测试用例setUp阶段中将一些任意数据放在testbed blobstore存储中,这样我就可以针对这些数据运行测试。

1 个答案:

答案 0 :(得分:6)

您可以将以下内容添加到setUp方法中,也可以将blob_key存储为self.blob_key以供日后使用。 init_files_stub非常重要,因为它使用内存blobstore初始化文件服务。

self.testbed.init_blobstore_stub()
self.testbed.init_files_stub()
from google.appengine.api import files
file_name = files.blobstore.create(mime_type='application/octet-stream')
with files.open(file_name, 'a') as f:
    f.write('blobdata')
files.finalize(file_name)
blob_key = files.blobstore.get_blob_key(file_name)

请注意,testbed引用from google.appengine.ext import testbedself.testbed是testbed实例。

使用init_files_stub,这与docs

中描述的完全相同