* fix dependencies uv.lock * refactor test markers for clarity * refactor: clean up imports and remove unused files * refactor: remove unused agent files and clean up market API instructions * refactor: enhance wrapper initialization with keyword arguments and clean up tests * refactor: remove PublicBinanceAgent * refactor: aggregator - simplified MarketDataAggregator and related models to functions * refactor: update README and .env.example to reflect the latest changes to the project * refactor: simplify product info and price creation in YFinanceWrapper * refactor: remove get_all_products method from market API wrappers and update documentation * fix: environment variable assertions * refactor: remove status attribute from ProductInfo and update related methods to use timestamp_ms * feat: implement aggregate_history_prices function to calculate hourly price averages * refactor: update docker-compose and app.py for improved environment variable handling and compatibility * feat: add detailed market instructions and improve error handling in price aggregation methods * feat: add aggregated news retrieval methods for top headlines and latest news * refactor: improve error messages in WrapperHandler for better clarity * fix: correct quote currency extraction in create_product_info and remove debug prints from tests
42 lines
1.5 KiB
Python
42 lines
1.5 KiB
Python
import pytest
|
|
from app.markets import MarketAPIsTool
|
|
|
|
|
|
@pytest.mark.tools
|
|
@pytest.mark.market
|
|
@pytest.mark.api
|
|
class TestMarketAPIsTool:
|
|
def test_wrapper_initialization(self):
|
|
market_wrapper = MarketAPIsTool("USD")
|
|
assert market_wrapper is not None
|
|
assert hasattr(market_wrapper, 'get_product')
|
|
assert hasattr(market_wrapper, 'get_products')
|
|
assert hasattr(market_wrapper, 'get_historical_prices')
|
|
|
|
def test_wrapper_capabilities(self):
|
|
market_wrapper = MarketAPIsTool("USD")
|
|
capabilities = []
|
|
if hasattr(market_wrapper, 'get_product'):
|
|
capabilities.append('single_product')
|
|
if hasattr(market_wrapper, 'get_products'):
|
|
capabilities.append('multiple_products')
|
|
if hasattr(market_wrapper, 'get_historical_prices'):
|
|
capabilities.append('historical_data')
|
|
assert len(capabilities) > 0
|
|
|
|
def test_market_data_retrieval(self):
|
|
market_wrapper = MarketAPIsTool("USD")
|
|
btc_product = market_wrapper.get_product("BTC")
|
|
assert btc_product is not None
|
|
assert hasattr(btc_product, 'symbol')
|
|
assert hasattr(btc_product, 'price')
|
|
assert btc_product.price > 0
|
|
|
|
def test_error_handling(self):
|
|
try:
|
|
market_wrapper = MarketAPIsTool("USD")
|
|
fake_product = market_wrapper.get_product("NONEXISTENT_CRYPTO_SYMBOL_12345")
|
|
assert fake_product is None or fake_product.price == 0
|
|
except Exception as e:
|
|
pass
|