Files
python_charts/tests/test_bitcoin_m2.py
T

77 lines
1.7 KiB
Python

import matplotlib
matplotlib.use("Agg")
import os
import sys
import pandas as pd
sys.path.append(os.path.abspath("."))
from scripts.bitcoin_m2_chart import plot_bitcoin_m2, main as btc_m2_main
def sample_data():
dates = pd.date_range("2021-01-01", periods=5, freq="D")
btc = pd.DataFrame({"value": [10, 11, 12, 13, 14]}, index=dates)
m2 = pd.DataFrame({"value": [1, 2, 3, 4, 5]}, index=dates)
return btc, m2
def test_plot_bitcoin_m2_returns_figure():
btc, m2 = sample_data()
fig = plot_bitcoin_m2(btc, m2, 94, 1)
assert len(fig.axes) == 2
assert any(ax.get_lines() for ax in fig.axes)
def test_btc_m2_main(monkeypatch):
btc, m2 = sample_data()
def fake_fetch(*_args, **_kwargs):
return btc, m2
monkeypatch.setattr("scripts.bitcoin_m2_chart.fetch_series", fake_fetch)
fig = btc_m2_main([
"--btc-series",
"BTC",
"--m2-series",
"M2",
"--width",
"8",
"--height",
"4",
"--dpi",
"150",
"--no-show",
])
assert len(fig.axes) == 2
def test_btc_m2_main_saves_output(tmp_path, monkeypatch):
btc, m2 = sample_data()
def fake_fetch(*_args, **_kwargs):
return btc, m2
monkeypatch.setattr("scripts.bitcoin_m2_chart.fetch_series", fake_fetch)
out_file = tmp_path / "out.png"
btc_m2_main(
[
"--btc-series",
"BTC",
"--m2-series",
"M2",
"--output",
str(out_file),
"--width",
"8",
"--height",
"4",
"--dpi",
"150",
"--no-show",
]
)
assert out_file.exists()