我正在使用自定义脚本运行Flask应用程序。还是尝试,无论如何。
我在Windows 10上,应用程序应在Linux Docker容器中使用以下命令运行:
docker-compose up api
Run Code Online (Sandbox Code Playgroud)
Docker-compose是version 1.23.2。在dockerfile中,该api服务通过以下命令运行:
command: python manage.py run --host "0.0.0.0" --with-threads
Run Code Online (Sandbox Code Playgroud)
在尝试启动时,我看到了异常
OSError: [Errno 8] Exec format error: '/api/manage.py'
Run Code Online (Sandbox Code Playgroud)
我最初以为这将是“可怕的Windows行尾”,再次给我,但是dos2unix在我的所有源文件上运行都无法解决问题。
如何避免此错误?
manage.py
docker-compose up api
Run Code Online (Sandbox Code Playgroud)
完整回溯
api_1 | Traceback (most recent call last):
api_1 | File "manage.py", line 22, in <module>
api_1 | cli()
api_1 | File "/usr/local/lib/python3.6/site-packages/click/core.py", line 764, in __call__
api_1 | return self.main(*args, **kwargs)
api_1 | File "/usr/local/lib/python3.6/site-packages/flask/cli.py", line 380, in main
api_1 | …Run Code Online (Sandbox Code Playgroud) 我无法理解某些测试代码中发生的情况。它看起来像这样:
import pytest
from unittest.mock import MagicMock
from my_module import MyClass
confusing_mock = MagicMock(
return_value=b"",
side_effect=[
ConnectionError(),
b"another_return_value?",
b"another_another_return_value?"
])
mocked_class = MyClass()
monkeypatch.setattr(mocked_class, "method_to_call_thrice", confusing_mock)
Run Code Online (Sandbox Code Playgroud)
我知道:
side_effect 是在调用模拟时要调用的函数side_effect是可迭代的,那么“对模拟的每次调用都将返回可迭代的下一个值”(感谢pytest docs)side_effect
返回DEFAULT,则模拟将从
return_value但这是我没有得到的:
MyClass.method_to_call_thrice什么?