Files
Lottery_Project/tests/test_util.py
T

54 lines
2.3 KiB
Python

"""Tests for the `util` module."""
from dotenv import load_dotenv
import os
import pytest
import util.convert as uc
import util.drawing as ud
import util.scrape as sc
load_dotenv()
def test_convert_string_to_integer() -> None:
"""Test string value conversion to integer."""
assert uc.convert_string_to_integer("0") == 0
assert uc.convert_string_to_integer("3.14") == 3
with pytest.raises(uc.InvalidStringException) as exc:
uc.convert_string_to_integer("a")
def test_get_next_draw_date_none() -> None:
"""Test when a game is not provided."""
assert not ud.get_next_draw_date(game=None)
def test_get_next_draw_date_minimum() -> None:
"""Test the next draw date returned for each game and when an invalid name is presented (None)"""
assert ud.get_next_draw_date(game="mega-millions")
assert ud.get_next_draw_date(game="powerball")
assert not ud.get_next_draw_date(game="something")
def test_get_next_draw_date_specified_from_date() -> None:
"""Test drawing dates returned for each possible day of the week."""
assert ud.get_next_draw_date(game="mega-millions", from_date='02/15/2026') == '02/17/2026'
assert ud.get_next_draw_date(game="mega-millions", from_date='02/16/2026') == '02/17/2026'
assert ud.get_next_draw_date(game="mega-millions", from_date='02/17/2026') == '02/17/2026'
assert ud.get_next_draw_date(game="mega-millions", from_date='02/18/2026') == '02/20/2026'
assert ud.get_next_draw_date(game="mega-millions", from_date='02/19/2026') == '02/20/2026'
assert ud.get_next_draw_date(game='powerball', from_date='02/15/2026') == '02/16/2026'
assert ud.get_next_draw_date(game='powerball', from_date='02/16/2026') == '02/16/2026'
assert ud.get_next_draw_date(game='powerball', from_date='02/17/2026') == '02/18/2026'
assert ud.get_next_draw_date(game='powerball', from_date='02/18/2026') == '02/18/2026'
assert ud.get_next_draw_date(game='powerball', from_date='02/19/2026') == '02/21/2026'
assert ud.get_next_draw_date(game='powerball', from_date='02/20/2026') == '02/21/2026'
@pytest.mark.parametrize("game", ['powerball', 'mega-millions'])
def test_scrape_game_history(game) -> None:
"""Test scraping the powerball result page for 1996."""
scrape_data = sc.scrape_game_history(game, year=1996)
assert len(scrape_data) in [17, 104]