first commit
This commit is contained in:
64
tests/test_auto_yearly_download.py
Normal file
64
tests/test_auto_yearly_download.py
Normal file
@@ -0,0 +1,64 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user