我正在为查询生成器编写单元测试,其中我从几个用户输入字段组装查询。
例如
query = sql.SQL("SELECT {fields} FROM {table}).format(
fields='*'
table=sql.Identifier(topic)))
Run Code Online (Sandbox Code Playgroud)
我只是想检查查询是否是我想要的,不需要执行。
我试图打印查询,并得到一个如下所示的组合对象
Composed([SQL('SELECT '), Composed([Identifier('*')]), SQL(' FROM '), Identifier('topic'), SQL(' '), SQL(''), SQL(' ')...)
Run Code Online (Sandbox Code Playgroud)
是否尝试将动态 sql 作为组合对象转换为 sql 查询字符串?
SELECT * FROM topic
Run Code Online (Sandbox Code Playgroud)
我没有为单元测试设置 postgres,所以我无法使用
query.as_string(conn)
Run Code Online (Sandbox Code Playgroud)
有什么提示吗?非常感谢
抱歉天真的问题.
(我现在正在从UCB学习CS61B.问题是我之前从未使用过Linux或Unix,所有的指令都是为这些系统编写的.)
所以我不知道怎么开始....
我有一个这样的文件夹
python
??? foo
? ??? __init__.py
? ??? web
? ??? __init__.py
? ??? api
? ? ??? __init__.py
? ? ??? helper_api.py
? ??? server.py
??? test_server.py
??? test_helper_api.py
Run Code Online (Sandbox Code Playgroud)
helper_api.py 就像
@helper_api.route("/helper", methods=['POST'])
def helper():
data = request.get_json(force=True, silent=True, cache=True)
if data is None:
raise QueryParseException("JSON-formatted query is required, none found")
Run Code Online (Sandbox Code Playgroud)
在 test_helper_api.py 中,我有
import ......
from foo.web.api.helper_api import QueryParseException
class TestClass(object):
@pytest.fixture
def client(self, request):
self.client = server.app.test_client()
return self.client
def test_helper_api(self, client):
with pytest.raises(QueryParseException):
client.post('/helper')
Run Code Online (Sandbox Code Playgroud)
当我运行测试类时,代码在 …
pytest ×2
python ×2
cygwin ×1
flask ×1
linux ×1
postgresql ×1
psycopg2 ×1
unit-testing ×1
unix ×1