import sys import os import sqlite3 # Přidání adresáře src do sys.path, aby bylo možné importovat moduly sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', 'src')) import rate_finder import database import data_fetcher def test_auto_yearly_download(): """Test: Automatické stažení ročních dat, pokud data pro daný rok neexistují.""" print("Test: Automatické stažení ročních dat, pokud data pro daný rok neexistují...") # Inicializujeme databázi database.init_db() # Zkontrolujeme, zda databáze obsahuje data pro rok 2019 year = 2019 has_data = rate_finder.check_year_data_in_db(year) if has_data: print(f"Varování: Databáze již obsahuje data pro rok {year}. Pro test je třeba databázi vyčistit.") # Pro účely testu odstraníme data pro rok 2019 conn = sqlite3.connect(database.DB_PATH) cursor = conn.cursor() cursor.execute('DELETE FROM exchange_rates WHERE strftime(\'%Y\', date) = ?', (str(year),)) conn.commit() conn.close() print(f"Data pro rok {year} byla odstraněna z databáze.") # Znovu zkontrolujeme has_data = rate_finder.check_year_data_in_db(year) if not has_data: print(f"Databáze neobsahuje data pro rok {year}, jak očekáváno.") # Zkusíme vyhledat kurz pro datum 18.08.2019 test_date = "18.08.2019" test_currency = "USD" print(f"Vyhledávám kurz pro {test_currency} na datum {test_date}...") rate = rate_finder.get_rate_for_date(test_date, test_currency) # Po vyhledání by měla být data pro rok 2019 v databázi has_data_after = rate_finder.check_year_data_in_db(year) if has_data_after: print(f"Test: Automatické stažení ročních dat pro rok {year} - OK") if rate: print(f"Kurz {test_currency} na datum {test_date} (nebo nejbližší pracovní den): {rate}") else: print(f"Kurz {test_currency} na datum {test_date} nebyl nalezen.") else: print(f"Test selhal: Data pro rok {year} nebyla automaticky stažena.") else: print(f"Test nelze provést, protože databáze již obsahuje data pro rok {year}.") def run_all_tests(): """Spustí všechny testy.""" print("Spouštím testy automatického stahování ročních dat...") test_auto_yearly_download() print("\nTesty automatického stahování ročních dat dokončeny!") if __name__ == "__main__": run_all_tests()