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

Jan*_*zny 3 python google-app-engine unit-testing blobstore

我喜欢写一些单元测试,其中包括需要读取blobstore文件

如何编写一个单元测试setUp,将一些文件放在testbed blobstore中,这样就可以这样读取:

blob_info = BlobInfo(blob_key)
reader = BlobReader(blob_info)
reader.readline()
Run Code Online (Sandbox Code Playgroud)

编辑:

我不寻找一种测试文件API的方法,我想在testb blobstore存储中放入一些任意数据来测试用例setUp阶段,这样我就可以针对这些数据运行测试了.

tes*_*dal 5

您可以将以下内容添加到setUp方法中,也可以将其存储为blob_keyself.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)
Run Code Online (Sandbox Code Playgroud)

请注意,testbed引用from google.appengine.ext import testbed并且self.testbed是testbed实例.

使用init_files_stub,这与docs中描述的完全相同: