У меня есть функция, которая использует API Google Blobstore, и здесь вырожденный случай:
#!/usr/bin/python
from google.appengine.ext import testbed
def foo():
from google.appengine.api import files
blob_filename = files.blobstore.create(mime_type='text/plain')
with files.open(blob_filename, 'a') as googfile:
googfile.write("Test data")
files.finalize(blob_filename)
tb = testbed.Testbed()
tb.activate()
tb.init_blobstore_stub()
foo() # in reality, I'm a function called from a 'faux client'
# in a unittest testcase.
Погрешность:
Traceback (most recent call last): File "e.py", line 18, in foo() # in reality, I'm a function called from a 'faux client' File "e.py", line 8, in foo blob_filename = files.blobstore.create(mime_type='text/plain') File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/files/blobstore.py", line 68, in create return files._create(_BLOBSTORE_FILESYSTEM, params=params) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/files/file.py", line 491, in _create _make_call('Create', request, response) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/files/file.py", line 230, in _make_call rpc = _create_rpc(deadline=deadline) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/files/file.py", line 213, in _create_rpc return apiproxy_stub_map.UserRPC('file', deadline) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 393, in __init__ self.__rpc = CreateRPC(service, stubmap) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 67, in CreateRPC assert stub, 'No api proxy found for service "%s"' % service AssertionError: No api proxy found for service "file"
Я не хочу изменять foo
, чтобы проверить его. Есть ли способ сделать foo
работать как ожидалось (т.е. Создать данный файл) в тестах модулей Google App Engine?
Я бы ожидал, что смогу сделать это с помощью прокси Google API, но я не понимаю его достаточно хорошо, чтобы понять это самостоятельно.
Буду благодарен за ваши мысли и предложения.
Спасибо за чтение.