Adapt tests to new method of starting flask

This commit is contained in:
Matthias 2019-05-18 09:50:29 +02:00
parent 540d4bef1e
commit bfc57a6f6d

View File

@ -6,10 +6,11 @@ from datetime import datetime
from unittest.mock import ANY, MagicMock, PropertyMock from unittest.mock import ANY, MagicMock, PropertyMock
import pytest import pytest
from flask import Flask
from freqtrade.__init__ import __version__ from freqtrade.__init__ import __version__
from freqtrade.persistence import Trade from freqtrade.persistence import Trade
from freqtrade.rpc.api_server import ApiServer, BASE_URI from freqtrade.rpc.api_server import BASE_URI, ApiServer
from freqtrade.state import State from freqtrade.state import State
from freqtrade.tests.conftest import (get_patched_freqtradebot, log_has, from freqtrade.tests.conftest import (get_patched_freqtradebot, log_has,
patch_get_signal) patch_get_signal)
@ -86,18 +87,17 @@ def test_api_run(default_conf, mocker, caplog):
mocker.patch('freqtrade.rpc.telegram.Updater', MagicMock()) mocker.patch('freqtrade.rpc.telegram.Updater', MagicMock())
mocker.patch('freqtrade.rpc.api_server.threading.Thread', MagicMock()) mocker.patch('freqtrade.rpc.api_server.threading.Thread', MagicMock())
apiserver = ApiServer(get_patched_freqtradebot(mocker, default_conf))
# Monkey patch flask app
run_mock = MagicMock() run_mock = MagicMock()
apiserver.app = MagicMock() mocker.patch('freqtrade.rpc.api_server.make_server', run_mock)
apiserver.app.run = run_mock
apiserver = ApiServer(get_patched_freqtradebot(mocker, default_conf))
assert apiserver._config == default_conf assert apiserver._config == default_conf
apiserver.run() apiserver.run()
assert run_mock.call_count == 1 assert run_mock.call_count == 1
assert run_mock.call_args_list[0][1]["host"] == "127.0.0.1" assert run_mock.call_args_list[0][0][0] == "127.0.0.1"
assert run_mock.call_args_list[0][1]["port"] == "8080" assert run_mock.call_args_list[0][0][1] == "8080"
assert isinstance(run_mock.call_args_list[0][0][2], Flask)
assert log_has("Starting HTTP Server at 127.0.0.1:8080", caplog.record_tuples) assert log_has("Starting HTTP Server at 127.0.0.1:8080", caplog.record_tuples)
assert log_has("Starting Local Rest Server", caplog.record_tuples) assert log_has("Starting Local Rest Server", caplog.record_tuples)
@ -111,8 +111,9 @@ def test_api_run(default_conf, mocker, caplog):
apiserver.run() apiserver.run()
assert run_mock.call_count == 1 assert run_mock.call_count == 1
assert run_mock.call_args_list[0][1]["host"] == "0.0.0.0" assert run_mock.call_args_list[0][0][0] == "0.0.0.0"
assert run_mock.call_args_list[0][1]["port"] == "8089" assert run_mock.call_args_list[0][0][1] == "8089"
assert isinstance(run_mock.call_args_list[0][0][2], Flask)
assert log_has("Starting HTTP Server at 0.0.0.0:8089", caplog.record_tuples) assert log_has("Starting HTTP Server at 0.0.0.0:8089", caplog.record_tuples)
assert log_has("Starting Local Rest Server", caplog.record_tuples) assert log_has("Starting Local Rest Server", caplog.record_tuples)
assert log_has("SECURITY WARNING - Local Rest Server listening to external connections", assert log_has("SECURITY WARNING - Local Rest Server listening to external connections",
@ -123,7 +124,7 @@ def test_api_run(default_conf, mocker, caplog):
# Test crashing flask # Test crashing flask
caplog.clear() caplog.clear()
apiserver.app.run = MagicMock(side_effect=Exception) mocker.patch('freqtrade.rpc.api_server.make_server', MagicMock(side_effect=Exception))
apiserver.run() apiserver.run()
assert log_has("Api server failed to start, exception message is:", assert log_has("Api server failed to start, exception message is:",
caplog.record_tuples) caplog.record_tuples)