diff --git a/openbb_terminal/common/behavioural_analysis/google_model.py b/openbb_terminal/common/behavioural_analysis/google_model.py
index d13aa315191b..2c00d94604c6 100644
--- a/openbb_terminal/common/behavioural_analysis/google_model.py
+++ b/openbb_terminal/common/behavioural_analysis/google_model.py
@@ -50,7 +50,7 @@ def get_regions(symbol: str) -> pd.DataFrame:
@log_start_end(log=logger)
-def get_queries(symbol: str) -> pd.DataFrame:
+def get_queries(symbol: str) -> dict:
"""Get related queries from google api [Source: google]
Parameters
@@ -60,8 +60,8 @@ def get_queries(symbol: str) -> pd.DataFrame:
Returns
-------
- pd.DataFrame
- Dataframe of related queries
+ dict : {'top': pd.DataFrame or None, 'rising': pd.DataFrame or None}
+
"""
pytrend = TrendReq()
pytrend.build_payload(kw_list=[symbol])
diff --git a/openbb_terminal/common/behavioural_analysis/google_view.py b/openbb_terminal/common/behavioural_analysis/google_view.py
index 5b90d9728121..22fe0f6eaf48 100644
--- a/openbb_terminal/common/behavioural_analysis/google_view.py
+++ b/openbb_terminal/common/behavioural_analysis/google_view.py
@@ -211,23 +211,34 @@ def display_queries(symbol: str, limit: int = 5, export: str = ""):
Ticker symbol
limit: int
Number of regions to show
- export: str
+ export: {"csv","json","xlsx","png","jpg","pdf","svg"}
Format to export data
+
+ Returns
+ -------
+ None
"""
- df_related_queries = google_model.get_queries(symbol)
- df = df_related_queries.copy()
- df_related_queries = df_related_queries[symbol]["top"].head(limit)
- df_related_queries["value"] = df_related_queries["value"].apply(
- lambda x: str(x) + "%"
- )
+ # Retrieve a dict with top and rising queries
+ dict_related_queries = google_model.get_queries(symbol)
+
+ # Select the DataFrame "top" from the dict
+ df_top_queries = dict_related_queries[symbol]["top"].head(limit).copy()
+ df_export = (
+ df_top_queries.copy()
+ ) # export the raw values, prior to string manipulation
+
+ # convert to strings and add %
+ df_top_queries["value"] = df_top_queries["value"].apply(lambda x: str(x) + "%")
print_rich_table(
- df_related_queries,
- headers=list(df_related_queries.columns),
+ df_top_queries,
+ headers=list(df_top_queries.columns),
title=f"Top {symbol}'s related queries",
)
- export_data(export, os.path.dirname(os.path.abspath(__file__)), "queries", df)
+ export_data(
+ export, os.path.dirname(os.path.abspath(__file__)), "queries", df_export
+ )
@log_start_end(log=logger)
diff --git a/openbb_terminal/stocks/options/op_helpers.py b/openbb_terminal/stocks/options/op_helpers.py
index 0b2f2c4fad30..58ca2dcfd24c 100644
--- a/openbb_terminal/stocks/options/op_helpers.py
+++ b/openbb_terminal/stocks/options/op_helpers.py
@@ -168,8 +168,6 @@ def __init__(
Parameters
----------
- type : int
- Option type, 1 for call and -1 for a put
s : float
The underlying asset price
k : float
@@ -182,6 +180,8 @@ def __init__(
The number of days until expiration
vol : float
The underlying volatility for an option
+ opt_type : int
+ put == -1; call == +1
"""
self.Type = int(opt_type)
self.price = float(s)
diff --git a/openbb_terminal/stocks/options/yfinance_model.py b/openbb_terminal/stocks/options/yfinance_model.py
index 5149f2a7dd3d..12fdc003b79b 100644
--- a/openbb_terminal/stocks/options/yfinance_model.py
+++ b/openbb_terminal/stocks/options/yfinance_model.py
@@ -71,7 +71,7 @@ def get_full_option_chain(
if calls:
df_list.append(call_df)
option_factor.append(1)
- df_list = [x[x["impliedVolatility"] > 0] for x in df_list]
+ df_list = [x[x["impliedVolatility"] > 0].copy() for x in df_list]
# Add in greeks to each df
# Time to expiration:
dt = (datetime.strptime(expiration, "%Y-%m-%d") - datetime.now()).seconds / (
diff --git a/tests/openbb_terminal/common/behavioural_analysis/cassettes/test_google_view/test_display_queries_export[AAPL-10-].yaml b/tests/openbb_terminal/common/behavioural_analysis/cassettes/test_google_view/test_display_queries_export[AAPL-10-].yaml
new file mode 100644
index 000000000000..3ddeddf0d2d3
--- /dev/null
+++ b/tests/openbb_terminal/common/behavioural_analysis/cassettes/test_google_view/test_display_queries_export[AAPL-10-].yaml
@@ -0,0 +1,822 @@
+interactions:
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ User-Agent:
+ - python-requests/2.28.1
+ method: GET
+ uri: https://trends.google.com/?geo=US
+ response:
+ body:
+ string: "
\n301
+ Moved\n301 Moved
\nThe document has moved\nhere.\r\n\r\n"
+ headers:
+ Age:
+ - '1495'
+ Alt-Svc:
+ - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443";
+ ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
+ Cache-Control:
+ - public, max-age=1800
+ Content-Length:
+ - '237'
+ Content-Type:
+ - text/html; charset=UTF-8
+ Date:
+ - Wed, 31 Aug 2022 13:32:51 GMT
+ Expires:
+ - Wed, 31 Aug 2022 14:02:51 GMT
+ Location:
+ - https://trends.google.com/trends/?geo=US
+ Server:
+ - sffe
+ X-Content-Type-Options:
+ - nosniff
+ X-XSS-Protection:
+ - '0'
+ status:
+ code: 301
+ message: Moved Permanently
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ User-Agent:
+ - python-requests/2.28.1
+ method: GET
+ uri: https://trends.google.com/trends/?geo=US
+ response:
+ body:
+ string: !!binary |
+ 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
+ headers:
+ Alt-Svc:
+ - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443";
+ ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Content-Encoding:
+ - gzip
+ Content-Security-Policy:
+ - 'script-src ''nonce-9E4r5yVaPIS_QzTBbUd_JQ'' ''unsafe-inline'' ''strict-dynamic''
+ https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri
+ /trends/cspreport'
+ Content-Type:
+ - text/html; charset=utf-8
+ Cross-Origin-Opener-Policy:
+ - same-origin-allow-popups
+ Date:
+ - Wed, 31 Aug 2022 13:57:46 GMT
+ Expires:
+ - Mon, 01 Jan 1990 00:00:00 GMT
+ P3P:
+ - CP="This is not a P3P policy! See g.co/p3phelp for more info."
+ Pragma:
+ - no-cache
+ Server:
+ - GSE
+ Set-Cookie:
+ - NID=511=s5q550rRdsYSXycOhBAeXXFWz0xPozsGid1z_CNdqOJXZhM9PisffmeFt7R1o2FX6FjCQKW5Zg_YJ04eHn0PL2_c4QWk_1ypYu1aBblTmKrF3JoQQPonyNms8qlz0xf2tJ9-C7fWfDg0nIUpn8bQtWFYx1Fqmcnqmw5Mo9IjNsE;
+ expires=Thu, 02-Mar-2023 13:57:46 GMT; path=/; domain=.google.com; HttpOnly
+ Transfer-Encoding:
+ - chunked
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - SAMEORIGIN
+ X-XSS-Protection:
+ - 1; mode=block
+ status:
+ code: 200
+ message: OK
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ Cookie:
+ - NID=511=s5q550rRdsYSXycOhBAeXXFWz0xPozsGid1z_CNdqOJXZhM9PisffmeFt7R1o2FX6FjCQKW5Zg_YJ04eHn0PL2_c4QWk_1ypYu1aBblTmKrF3JoQQPonyNms8qlz0xf2tJ9-C7fWfDg0nIUpn8bQtWFYx1Fqmcnqmw5Mo9IjNsE
+ User-Agent:
+ - python-requests/2.28.1
+ accept-language:
+ - en-US
+ method: GET
+ uri: https://trends.google.com/trends/api/explore?hl=en-US&tz=360&req=%7B%22comparisonItem%22%3A+%5B%7B%22keyword%22%3A+%22AAPL%22%2C+%22time%22%3A+%22today+5-y%22%2C+%22geo%22%3A+%22%22%7D%5D%2C+%22category%22%3A+0%2C+%22property%22%3A+%22%22%7D
+ response:
+ body:
+ string: !!binary |
+ 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
+ FaPmmObHQGTLRrfvvwAAAP//AwDqvgGmfhUAAA==
+ headers:
+ Alt-Svc:
+ - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443";
+ ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Content-Disposition:
+ - attachment; filename="json.txt"; filename*=UTF-8''json.txt
+ Content-Encoding:
+ - gzip
+ Content-Security-Policy:
+ - 'script-src ''nonce-uBwba1B73bs_YKJY-UAkxg'' ''unsafe-inline'' ''strict-dynamic''
+ https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri
+ /trends/cspreport'
+ Content-Type:
+ - application/json; charset=utf-8
+ Cross-Origin-Opener-Policy:
+ - same-origin-allow-popups
+ Date:
+ - Wed, 31 Aug 2022 13:57:47 GMT
+ Expires:
+ - Mon, 01 Jan 1990 00:00:00 GMT
+ Pragma:
+ - no-cache
+ Server:
+ - GSE
+ Transfer-Encoding:
+ - chunked
+ X-Content-Type-Options:
+ - nosniff
+ X-Frame-Options:
+ - SAMEORIGIN
+ X-XSS-Protection:
+ - 1; mode=block
+ status:
+ code: 200
+ message: OK
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ Cookie:
+ - NID=511=s5q550rRdsYSXycOhBAeXXFWz0xPozsGid1z_CNdqOJXZhM9PisffmeFt7R1o2FX6FjCQKW5Zg_YJ04eHn0PL2_c4QWk_1ypYu1aBblTmKrF3JoQQPonyNms8qlz0xf2tJ9-C7fWfDg0nIUpn8bQtWFYx1Fqmcnqmw5Mo9IjNsE
+ User-Agent:
+ - python-requests/2.28.1
+ accept-language:
+ - en-US
+ method: GET
+ uri: https://trends.google.com/trends/api/widgetdata/relatedsearches?req=%7B%22restriction%22%3A+%7B%22geo%22%3A+%7B%7D%2C+%22time%22%3A+%222017-08-31+2022-08-31%22%2C+%22originalTimeRangeForExploreUrl%22%3A+%22today+5-y%22%2C+%22complexKeywordsRestriction%22%3A+%7B%22keyword%22%3A+%5B%7B%22type%22%3A+%22BROAD%22%2C+%22value%22%3A+%22AAPL%22%7D%5D%7D%7D%2C+%22keywordType%22%3A+%22QUERY%22%2C+%22metric%22%3A+%5B%22TOP%22%2C+%22RISING%22%5D%2C+%22trendinessSettings%22%3A+%7B%22compareTime%22%3A+%222012-08-30+2017-08-30%22%7D%2C+%22requestOptions%22%3A+%7B%22property%22%3A+%22%22%2C+%22backend%22%3A+%22IZG%22%2C+%22category%22%3A+0%7D%2C+%22language%22%3A+%22en%22%2C+%22userCountryCode%22%3A+%22US%22%2C+%22userConfig%22%3A+%7B%22userType%22%3A+%22USER_TYPE_SCRAPER%22%7D%7D&token=APP6_UEAAAAAYxC6W2SEDwpOlcF2HmIga88ZSjbh-a9K&tz=360
+ response:
+ body:
+ string: !!binary |
+ H4sIAAAAAAAAALxUbWvkNhD+K3MbAskRxS9J2IvfKD3a4/rloIQW+uWQ7bEtIkuqJMebLAv9G/17
+ /SUdeXcvuUDhoLRfbDQzmmfmmdFTDH6UILnqS1RVMaLn0AzcOvTl5Dv27mBTfMTyQeBstPXQaOVR
+ +XIllPCCS+YaLrFMLmAkyziNz4ZZtH4oW3wQDbLlsKoKL7zE6gdrtYXr9BbOvuct/Iy/T+j8+Zs3
+ SRHtIwrnHyWC0qrBcvWpiX8zn55+fS9//Pj+7kqI5Kf0l3lVvd2O3PZCZXFueNsK1WfxLvR10egW
+ tx0VmyU3ZhOlqdkAt1TwhePKMYdWdEvktubNfW/1pNrspOu6vNFS2+wkTdMvOUOKXa3bx+0Lp8eN
+ Z1yKXmWTItLyQynrU+CT1xCTYbPvO7u6jc0mJ4bYgKIfqKh3wXDMf0UHiCHA5Lu3UMGC9aKwycqz
+ KJrn+bLXupd42egxEiPv0UUYuHSR1bX2l0b155DE8SlQLmKPWTTI/RGJ2QU9jUND5khekizwgaNc
+ P6DtpJ6zQbQtqp2xuJ0H4ZE5wxvM6Mxmy02+E8od6Viv13s6Wmy05V5oldHkcMdBjP221rZFS5P5
+ bsRWcHCNRVTAVQtnzxyt14R/vn3deshzoJZ5bbKXtC6+r1uLd7sTqXv9rezVlsqg69HeFa5GyebF
+ 6fPS4+fkJt7cXLdmz/AzsYfKJHY+Y4HVQ49aycevG6Uoi07LaaEnuU1bI863/7rY9NuLBVqL+DRa
+ 1iN8cjbqJ7afDlsg/gN0Gsg/UcJmrO+FZ4Gag0wYsUHJlhXK0v+XnfxYzjMcc+IJsy98HVerFc5I
+ /pgJJYVCVkvd3OeHh31zTY9ov52EQ/tQRIuSkZhyoUC05Yp3bHmzLGgpGdGuwGrSzFUIIY3kMFjs
+ ytd9kiYavqQIVSxqxiSvUZYflph9EnpwFWFSJP14VZiqqCtS2ssiqiso6NVWdwP3f/3xp6MpwFIJ
+ +YKdYu8GBNJGEgFouFLag7G6QefAk8fudRpqbPjkEIQH4WDkstOWZnwJHz24QU+yhXC1Dje8FcHz
+ ClhKmBHulZ6P2FFovvobAAD//wMAvGjwBJUGAAA=
+ headers:
+ Alt-Svc:
+ - h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443";
+ ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
+ Cache-Control:
+ - no-cache, no-store, max-age=0, must-revalidate
+ Content-Encoding:
+ - gzip
+ Content-Security-Policy:
+ - 'script-src ''nonce-W1uRM1JPcUImnLGHuxmN3A'' ''unsafe-inline'' ''strict-dynamic''
+ https: http: ''unsafe-eval'';object-src ''none'';base-uri ''self'';report-uri
+ /trends/cspreport'
+ Content-Type:
+ - text/html; charset=utf-8
+ Cross-Origin-Opener-Policy:
+ - same-origin-allow-popups
+ Date:
+ - Wed, 31 Aug 2022 13:57:47 GMT
+ Expires:
+ - Mon, 01 Jan 1990 00:00:00 GMT
+ Pragma:
+ - no-cache
+ Server:
+ - GSE
+ Transfer-Encoding:
+ - chunked
+ X-Content-Type-Options:
+ - nosniff
+ X-XSS-Protection:
+ - 1; mode=block
+ status:
+ code: 429
+ message: unknown
+version: 1
diff --git a/tests/openbb_terminal/common/behavioural_analysis/test_google_view.py b/tests/openbb_terminal/common/behavioural_analysis/test_google_view.py
index e69de29bb2d1..bc4c680dcc93 100644
--- a/tests/openbb_terminal/common/behavioural_analysis/test_google_view.py
+++ b/tests/openbb_terminal/common/behavioural_analysis/test_google_view.py
@@ -0,0 +1,104 @@
+# 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 resp
+
+
+@pytest.mark.default_cassette("test_google_view")
+@pytest.mark.vcr
+@pytest.mark.parametrize(
+ "symbol, limit, export",
+ [
+ (
+ # standard run without export
+ "AAPL",
+ 10,
+ "",
+ ),
+ (
+ # standard run WITH export
+ "AAPL",
+ 10,
+ "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[symbol]["top"].head(limit)
+ ), # expected DF
+ )
diff --git a/tests/openbb_terminal/common/behavioural_analysis/txt/test_google_view/test_display_queries_export[AAPL-10-].txt b/tests/openbb_terminal/common/behavioural_analysis/txt/test_google_view/test_display_queries_export[AAPL-10-].txt
new file mode 100644
index 000000000000..9c5cd3a7ab0b
--- /dev/null
+++ b/tests/openbb_terminal/common/behavioural_analysis/txt/test_google_view/test_display_queries_export[AAPL-10-].txt
@@ -0,0 +1,11 @@
+ query value
+0 stock aapl 100%
+1 aapl price 29%
+2 stock price aapl 24%
+3 amzn 19%
+4 tsla 19%
+5 msft 15%
+6 tsla stock 12%
+7 amzn stock 11%
+8 fb stock 10%
+9 msft stock 9%
diff --git a/tests/openbb_terminal/common/behavioural_analysis/txt/test_google_view/test_display_queries_export[AAPL-10-csv].txt b/tests/openbb_terminal/common/behavioural_analysis/txt/test_google_view/test_display_queries_export[AAPL-10-csv].txt
new file mode 100644
index 000000000000..9c5cd3a7ab0b
--- /dev/null
+++ b/tests/openbb_terminal/common/behavioural_analysis/txt/test_google_view/test_display_queries_export[AAPL-10-csv].txt
@@ -0,0 +1,11 @@
+ query value
+0 stock aapl 100%
+1 aapl price 29%
+2 stock price aapl 24%
+3 amzn 19%
+4 tsla 19%
+5 msft 15%
+6 tsla stock 12%
+7 amzn stock 11%
+8 fb stock 10%
+9 msft stock 9%
diff --git a/tests/openbb_terminal/test_helper_funcs.py b/tests/openbb_terminal/test_helper_funcs.py
new file mode 100644
index 000000000000..db63cd861b54
--- /dev/null
+++ b/tests/openbb_terminal/test_helper_funcs.py
@@ -0,0 +1,99 @@
+# IMPORTATION STANDARD
+from pathlib import Path
+
+# IMPORTATION THIRDPARTY
+import pandas as pd
+import pytest
+
+# IMPORTATION INTERNAL
+from openbb_terminal.helper_funcs import export_data
+
+# pylint: disable=E1101
+# pylint: disable=W0603
+# pylint: disable=E1111
+# pylint: disable=W0621
+# pylint: disable=W0613
+
+
+@pytest.fixture
+def mock_compose_export_path(monkeypatch, tmp_path):
+ # files in tmp_dir will remain (in separate folders) for 3 sequential runs of pytest
+ def mock_return(func_name, *args, **kwargs):
+ return tmp_path, f"{func_name}_20220829_235959"
+
+ monkeypatch.setattr("openbb_terminal.helper_funcs.compose_export_path", mock_return)
+
+
+@pytest.mark.parametrize(
+ "export_type, dir_path, func_name, df",
+ [
+ (
+ "csv",
+ "C:/openbb_terminal/common/behavioural_analysis",
+ "queries",
+ pd.DataFrame(),
+ ),
+ (
+ "json",
+ "C:/openbb_terminal/common/behavioural_analysis",
+ "queries",
+ pd.DataFrame(),
+ ),
+ (
+ "xlsx",
+ "C:/openbb_terminal/common/behavioural_analysis",
+ "queries",
+ pd.DataFrame(),
+ ),
+ (
+ "png",
+ "C:/openbb_terminal/common/behavioural_analysis",
+ "queries",
+ pd.DataFrame(),
+ ),
+ (
+ "jpg",
+ "C:/openbb_terminal/common/behavioural_analysis",
+ "queries",
+ pd.DataFrame(),
+ ),
+ (
+ "pdf",
+ "C:/openbb_terminal/common/behavioural_analysis",
+ "queries",
+ pd.DataFrame(),
+ ),
+ (
+ "svg",
+ "C:/openbb_terminal/common/behavioural_analysis",
+ "queries",
+ pd.DataFrame(),
+ ),
+ ],
+)
+def test_export_data_filetypes(
+ mock_compose_export_path, export_type, dir_path, func_name, df, tmp_path
+):
+ export_data(export_type, dir_path, func_name, df)
+
+ assert Path(tmp_path / f"{func_name}_20220829_235959.{export_type}").exists()
+ # TODO add assertions to check the validity of the files?
+
+
+@pytest.mark.parametrize(
+ "export_type, dir_path, func_name, data",
+ [
+ (
+ # Dict instead of DataFrame
+ "csv",
+ "C:/openbb_terminal/common/behavioural_analysis",
+ "queries",
+ dict({"test": "dict"}),
+ ),
+ ],
+)
+def test_export_data_invalid_data(
+ mock_compose_export_path, export_type, dir_path, func_name, data
+):
+ with pytest.raises(AttributeError):
+ assert export_data(export_type, dir_path, func_name, data)