【发布时间】:2018-10-17 11:52:57
【问题描述】:
我正在使用 Python3.6 中的 unittest 为我的应用程序编写测试。我正在为此测试创建一个简单的 Flask 应用程序,我想用它来注册我定义的蓝图。我遇到的问题是当我尝试导入我的蓝图时:
File "/app/test/__init__.py", line 1, in <module>
from . import test_views
File "/app/test/test_views.py", line 50, in <module>
from api.metrics.views import stats
File "/app/api/metrics/__init__.py", line 1, in <module>
from .views import stats
File "/app/api/metrics/views.py", line 13, in <module>
def get_stats(client=None):
File "/testenv/lib/python3.6/site-packages/flask/blueprints.py", line 161, in decorator
endpoint = options.pop("endpoint", f.__name__)
File "/usr/local/Cellar/python3/3.6.3/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/mock.py", line 584, in __getattr__
raise AttributeError(name)
AttributeError: __name__
错误出现在我在这段代码中调用 @stats.route... 的地方:
stats = Blueprint('metrics', __name__)
@stats.route('/metrics', methods=['POST'])
@setup.require_suth
def get_metrics(client=None):
<This code is not relevant>
有人知道如何正确执行此操作吗?我真的不知道该怎么做。
这是我的结构:
/app
/api
/metrics
__init__.py
views.py
/test
test_views.py
这是我测试中的导入语句:
app_ = define_test_app()
from api.metrics.views import stats
app_.register_blueprint(stats)
不胜感激,因为我完全被困在这一点上。
【问题讨论】:
标签: python flask python-unittest python-decorators