dclient/tests/test_query.py

41 lines
1.2 KiB
Python
Raw Normal View History

2022-11-21 18:16:28 -08:00
from click.testing import CliRunner
from dclient.cli import cli
import json
def test_query_error(httpx_mock):
httpx_mock.add_response(
json={
"ok": False,
"error": "Statement must be a SELECT",
"status": 400,
"title": "Invalid SQL",
},
status_code=400,
)
runner = CliRunner()
result = runner.invoke(cli, ["query", "https://example.com", "hello"])
assert result.exit_code == 1
assert result.output == "Error: Invalid SQL: Statement must be a SELECT\n"
def test_query(httpx_mock):
httpx_mock.add_response(
json={
"ok": True,
"database": "fixtures",
"query_name": None,
"rows": [{"5 * 2": 10}],
"truncated": False,
"columns": ["5 * 2"],
"query": {"sql": "select 5 * 2", "params": {}},
"error": None,
"private": False,
"allow_execute_sql": True,
},
status_code=200,
)
runner = CliRunner()
result = runner.invoke(cli, ["query", "https://example.com", "hello"])
assert result.exit_code == 0
assert json.loads(result.output) == [{"5 * 2": 10}]