Files
OpenBB/tests/openbb_terminal/common/behavioural_analysis/test_google_view.py
Colin Delahunty 532daac9fe Fix stock and fund (#2656)
* Added handling for bad data

* Fixed stocks/ba

* Fixed stocks/disc

* Fixed stocks/fa

* Added test fixes
2022-09-28 15:38:34 +02:00

103 lines
2.4 KiB
Python

# IMPORTATION STANDARD
# IMPORTATION THIRDPARTY
import pandas as pd
import pytest
# IMPORTATION INTERNAL
from openbb_terminal.common.behavioural_analysis import google_view
# pylint: disable=E1101
# pylint: disable=W0603
# pylint: disable=E1111
# pylint: disable=W0621
# pylint: disable=W0613
@pytest.fixture
def get_queries_response():
"""
mock response from get_queries function in google_model
"""
top_list = [
["stock aapl", 100],
["aapl price", 29],
["stock price aapl", 24],
["amzn", 19],
["tsla", 19],
["msft", 15],
["tsla stock", 12],
["amzn stock", 11],
["fb stock", 10],
["msft stock", 9],
["nvda", 7],
["dow", 6],
["tesla", 6],
["amd", 5],
["goog", 5],
["baba", 5],
["aapl premarket", 5],
["nvda stock", 5],
["tesla stock", 5],
["amd stock", 4],
["aapl stock price today", 4],
["nflx", 4],
["nio", 4],
["baba stock", 4],
["nio stock", 4],
]
resp = {
"AAPL": {
"top": pd.DataFrame(top_list, columns=["query", "value"]),
"rising": pd.DataFrame(top_list, columns=["query", "value"]),
}
}
return pd.DataFrame(resp)
@pytest.mark.default_cassette("test_google_view")
@pytest.mark.vcr
@pytest.mark.parametrize(
"symbol, limit, export",
[
(
# standard run without export
"AAPL",
25,
"",
),
(
# standard run WITH export
"AAPL",
25,
"csv",
),
],
)
def test_display_queries(mocker, symbol, limit, export, get_queries_response):
# MOCK VISUALIZE_OUTPUT
mocker.patch(target="openbb_terminal.helper_classes.TerminalStyle.visualize_output")
# MOCK GOOGLE_MODEL
mocker.patch(
target="openbb_terminal.common.behavioural_analysis.google_model.get_queries",
return_value=get_queries_response,
)
# MOCK EXPORT_DATA
export_mock = mocker.Mock()
mocker.patch(
target="openbb_terminal.common.behavioural_analysis.google_view.export_data",
new=export_mock,
)
google_view.display_queries(symbol, limit, export)
if export:
pd.testing.assert_frame_equal(
export_mock.call_args[0][3], # fourth positional arg is the df
pd.DataFrame(get_queries_response), # expected DF
)