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