falcon, AttributeError: 'API' object has no attribute 'create'

僤鯓⒐⒋嵵緔 提交于 2019-12-22 11:06:03

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!