gpt4 book ai didi

google-app-engine - Google App Engine 的测试台 stub 'search'

转载 作者:太空宇宙 更新时间:2023-11-03 15:26:31 24 4
gpt4 key购买 nike

我正在尝试使用开发应用服务器在 Python 中测试 Google App Engine 的新全文搜索功能。

是否有 search 的 stub 这允许人们用 testbed 来测试它本地单元测试?

下面是抛出异常的示例代码:

#!/usr/bin/python
from google.appengine.ext import testbed

from google.appengine.api import search

def foo():
d = search.Document(doc_id='X',
fields=[search.TextField(name='abc', value='123')])
s = search.Index(name='one').add(d)

tb = testbed.Testbed()
tb.activate()
# tb.init_search_stub() ## does this exist?

foo()

foo() 抛出的异常是:AssertionError: No api proxy found for service "search"。有没有写api代理做搜索?

感谢想法和评论。

最佳答案

更新 这在 2012 年有效。2013 年情况发生了变化:官方支持 stub 。请参阅@siebz0r 的回答。

它不在 list of supported stubs 中(但是,我假设),但是有一个 SearchServiceStub在 simple_search_stub.py 中,它看起来像你所追求的。

我自己还没有测试过,但你可以尝试这样做:

testbed = testbed.Testbed()
testbed.activate()

stub = SearchServiceStub()
testbed._register_stub(SEARCH_SERVICE_NAME, stub)

SEARCH_SERVICE_NAME 应该是 "search",它也应该出现在 SUPPORTED_SERVICES 列表中,otherwise testbed will raise an exception .

“注入(inject)”这个新服务 stub 的方式是修改 SDK 的 testbed/__init__.py 或从您的代码中执行。不能真正说出哪种方法更好,因为这两种方法都会被破解,直到 init_search_stub() 将正式出现在列表中。

另外,它还没有出现在列表中可能是因为它还没有准备好 :) 所以,使用它需要您自担风险。

关于google-app-engine - Google App Engine 的测试台 stub 'search',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10872009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com