我有一个用
设置的apiimport hug
API = hug.API(__name__).http.base_url='/api'
@hug.get('/hello-world', versions=1)
def hello_world(response):
return hug.HTTP_200
我正试图用PyTest测试它。
我正试图用
测试路线import pytest
import hug
from myapi import api
...
def test_hello_world_route(self):
result = hug.test.get(myapp, 'v1/hello-world')
assert result.status == hug.HTTP_200
如何测试已配置http.base_url
的拥抱路线?
无论路径路径如何,我都会遇到404
错误。我试过了
/api/v1/hello-world
api/v1/hello-world
v1/hello-world
/v1/hello-world
如果我删除了hug.API().http.base_url
设置,那么v1/hello-world
工作正常,但我的要求是设置base_url
。
我已经阅读了官方拥抱github repo和各种在线资源(如ProgramTalk)的文档,但我没有取得多大成功。
任何建议?
答案 0 :(得分:3)
您应该将模块(myapp
)作为hug.test.get()
的第一个参数发送。
然后您可以使用完整路径/api/v1/hello-world
作为第二个参数。
这是一个最小的工作示例:
# myapp.py
import hug
api = hug.API(__name__).http.base_url='/api'
@hug.get('/hello-world', versions=1)
def hello_world(response):
return hug.HTTP_200
# tests.py
import hug
import myapp
def test_hello_world_route():
result = hug.test.get(myapp, '/api/v1/hello-world')
assert result.status == hug.HTTP_200
# run in shell
pytest tests.py