69 lines
3.0 KiB
Python
69 lines
3.0 KiB
Python
import sys
|
|
import os
|
|
from datetime import datetime
|
|
|
|
# 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 holidays
|
|
|
|
def test_future_date():
|
|
"""Test vyhledání kurzu pro budoucí datum."""
|
|
print("Test: Vyhledání kurzu pro budoucí datum...")
|
|
future_date = "01.01.2030"
|
|
rate = rate_finder.get_rate_for_date(future_date, "USD")
|
|
assert rate is None, "Mělo by vrátit None pro budoucí datum"
|
|
print("Test pro budoucí datum: OK")
|
|
|
|
def test_today_before_1430():
|
|
"""Test vyhledání kurzu pro dnešní datum před 14:30."""
|
|
print("Test: Vyhledání kurzu pro dnešní datum před 14:30...")
|
|
# Pro tento test předpokládáme, že čas je před 14:30
|
|
# Tento test může být složitější na automatizaci, protože závisí na aktuálním čase
|
|
# Pro jednoduchost jej provedeme pouze pokud je to relevantní
|
|
today = datetime.now()
|
|
if today.time() < datetime.strptime("14:30", "%H:%M").time():
|
|
today_str = today.strftime("%d.%m.%Y")
|
|
rate = rate_finder.get_rate_for_date(today_str, "USD")
|
|
assert rate is None, "Mělo by vrátit None pro dnešní datum před 14:30"
|
|
print("Test pro dnešní datum před 14:30: OK")
|
|
else:
|
|
print("Test pro dnešní datum před 14:30: Přeskočeno (čas je po 14:30)")
|
|
|
|
def test_weekend_with_previous_workday():
|
|
"""Test vyhledání kurzu pro víkend s předchozím pracovním dnem."""
|
|
print("Test: Vyhledání kurzu pro víkend...")
|
|
# 11.08.2025 je pondělí, 10.08.2025 je neděle
|
|
# Otestujeme, zda pro neděli vrátí kurz z pondělí
|
|
|
|
# Nejprve vložíme testovací kurz pro pondělí
|
|
database.init_db()
|
|
database.insert_rate("11.08.2025", "TEST", 1, 25.0)
|
|
|
|
rate = rate_finder.get_rate_for_date("10.08.2025", "TEST")
|
|
# Očekáváme, že vrátí kurz z 11.08.2025, ale protože logika hledá zpět,
|
|
# měl by najít kurz z předchozího pracovního dne, který je 08.08.2025 (pátek)
|
|
# Nicméně v naší testovací databázi máme jen kurz z 11.08.2025
|
|
# Takže tento test by měl selhat, pokud není správně implementována logika.
|
|
# Pro správný test bychom museli mít data v databázi.
|
|
# Upravíme test tak, že vložíme kurz pro 08.08.2025 a otestujeme proti němu.
|
|
|
|
# Vložíme kurz pro 08.08.2025
|
|
database.insert_rate("08.08.2025", "TEST", 1, 24.5)
|
|
# 10.08.2025 je neděle, předchozí pracovní den je 08.08.2025
|
|
rate = rate_finder.get_rate_for_date("10.08.2025", "TEST")
|
|
assert rate == 24.5, f"Očekáváno 24.5, ale vráceno {rate}"
|
|
print("Test pro víkend: OK")
|
|
|
|
def run_all_tests():
|
|
"""Spustí všechny testy."""
|
|
print("Spouštím testy modulu rate_finder.py...")
|
|
test_future_date()
|
|
test_today_before_1430()
|
|
test_weekend_with_previous_workday()
|
|
print("\nVšechny testy modulu rate_finder.py byly úspěšné!")
|
|
|
|
if __name__ == "__main__":
|
|
run_all_tests() |