问题
I'm trying test my falcon routes, but tests always failed, and looks like I make all things right.
my app.py
import falcon
from resources.static import StaticResource
api = falcon.API()
api.add_route('/', StaticResource())
and my test directory tests/static.py
from falcon import testing
import pytest
from app import api
@pytest.fixture(scope='module')
def client():
# Assume the hypothetical `myapp` package has a
# function called `create()` to initialize and
# return a `falcon.API` instance.
return testing.TestClient(api.create())
def test_get_message(client):
result = client.simulate_get('/')
assert result.status_code == 200
Help please, why I got AttributeError: 'API' object has no attribute 'create'
error? Thanks.
回答1:
You are missing the hypothetical create()
function in your app.py
.
Your app.py
should look like the following:
import falcon
from resources.static import StaticResource
def create():
api = falcon.API()
api.add_route('/', StaticResource())
return api
api = create()
Then in your tests/static.py
should look like:
from falcon import testing
import pytest
from app import create
@pytest.fixture(scope='module')
def client():
return testing.TestClient(create())
def test_get_message(client):
result = client.simulate_get('/')
assert result.status_code == 200
来源:https://stackoverflow.com/questions/43274942/falcon-attributeerror-api-object-has-no-attribute-create