64 lines
2.5 KiB
Python
64 lines
2.5 KiB
Python
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() |