Reformat code to pythonic standards

This commit is contained in:
chris committed 2026-05-27 08:19:34 -04:00
1 parent e2b8f5497c
commit ea62bdfc0b
6 files changed
+249 -100

No files matched your search

+102 -39
View File
@@ -1,15 +1,15 @@
"""Tests for the `util` module."""
from datetime import datetime
import pytest
from httpx import ConnectError
import pytest
import util.convert as uc
import util.drawing as ud
import util.environment as ue
import util.scrape as sc
import util.odds as uo
from data.database import PowerballDraw, MegaMillionsDraw
import util.scrape as sc
from data.database import MegaMillionsDraw, PowerballDraw
def test_convert_string_to_integer() -> None:
@@ -31,7 +31,8 @@ def test_get_previous_draw_date_none() -> 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)"""
"""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")
@@ -40,7 +41,8 @@ def test_get_next_draw_date_minimum() -> None:
def test_get_previous_draw_date_minimum() -> None:
"""Test the next draw date returned for each game and when an invalid name is presented (None)"""
"""Test the next draw date returned for each game and when an invalid
name is presented (None)"""
assert ud.get_previous_draw_date(game="mega-millions")
assert ud.get_previous_draw_date(game="powerball")
assert not ud.get_previous_draw_date(game="something")
@@ -50,39 +52,84 @@ def test_get_previous_draw_date_minimum() -> None:
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="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'
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'
def test_get_previous_draw_date_specified_from_date() -> None:
"""Test drawing dates returned for each possible day of the week."""
assert ud.get_previous_draw_date(game="mega-millions", from_date='02/15/2026') == '02/13/2026'
assert ud.get_previous_draw_date(game="mega-millions", from_date='02/16/2026') == '02/13/2026'
assert ud.get_previous_draw_date(game="mega-millions", from_date='02/17/2026') == '02/13/2026'
assert ud.get_previous_draw_date(game="mega-millions", from_date='02/18/2026') == '02/17/2026'
assert ud.get_previous_draw_date(game="mega-millions", from_date='02/19/2026') == '02/17/2026'
assert ud.get_previous_draw_date(
game="mega-millions", from_date='02/15/2026',
) == '02/13/2026'
assert ud.get_previous_draw_date(
game="mega-millions", from_date='02/16/2026',
) == '02/13/2026'
assert ud.get_previous_draw_date(
game="mega-millions", from_date='02/17/2026',
) == '02/13/2026'
assert ud.get_previous_draw_date(
game="mega-millions", from_date='02/18/2026',
) == '02/17/2026'
assert ud.get_previous_draw_date(
game="mega-millions", from_date='02/19/2026',
) == '02/17/2026'
assert ud.get_previous_draw_date(game='powerball', from_date='02/15/2026') == '02/14/2026'
assert ud.get_previous_draw_date(game='powerball', from_date='02/16/2026') == '02/14/2026'
assert ud.get_previous_draw_date(game='powerball', from_date='02/17/2026') == '02/16/2026'
assert ud.get_previous_draw_date(game='powerball', from_date='02/18/2026') == '02/16/2026'
assert ud.get_previous_draw_date(game='powerball', from_date='02/19/2026') == '02/18/2026'
assert ud.get_previous_draw_date(game='powerball', from_date='02/20/2026') == '02/18/2026'
assert ud.get_previous_draw_date(
game='powerball', from_date='02/15/2026',
) == '02/14/2026'
assert ud.get_previous_draw_date(
game='powerball', from_date='02/16/2026',
) == '02/14/2026'
assert ud.get_previous_draw_date(
game='powerball', from_date='02/17/2026',
) == '02/16/2026'
assert ud.get_previous_draw_date(
game='powerball', from_date='02/18/2026',
) == '02/16/2026'
assert ud.get_previous_draw_date(
game='powerball', from_date='02/19/2026',
) == '02/18/2026'
assert ud.get_previous_draw_date(
game='powerball', from_date='02/20/2026',
) == '02/18/2026'
@pytest.mark.parametrize("game", ['powerball', 'mega-millions'])
def test_scrape_game_history(game) -> None:
"""Test scraping the powerball result page for 1996, 2020, and current year."""
"""Test scraping the powerball result page for 1996, 2020, and current
year."""
try:
scrape_data = sc.scrape_game_history(game, year=1996)
assert len(scrape_data) in [17, 104]
@@ -106,31 +153,47 @@ def test_calculate_odds() -> None:
def test_get_odds_of_winning() -> None:
assert uo.get_odds_of_winning(
main_ball_draw_pool=49, main_ball_draw_count=5, game_ball_draw_pool=18, game_ball_draw_count=1
main_ball_draw_pool=49, main_ball_draw_count=5, game_ball_draw_pool=18,
game_ball_draw_count=1,
) == 'The odds of winning are 1 in 34,323,912'
with pytest.raises(TypeError):
uo.get_odds_of_winning()
with pytest.raises(ValueError):
uo.get_odds_of_winning(
main_ball_draw_pool=49, main_ball_draw_count= 50, game_ball_draw_pool=18, game_ball_draw_count=1)
main_ball_draw_pool=49, main_ball_draw_count=50,
game_ball_draw_pool=18, game_ball_draw_count=1,
)
assert uo.get_odds_of_winning(
main_ball_draw_pool=69, main_ball_draw_count=5, game_ball_draw_pool=26, game_ball_draw_count=1
main_ball_draw_pool=69, main_ball_draw_count=5, game_ball_draw_pool=26,
game_ball_draw_count=1,
) == 'The odds of winning are 1 in 292,201,338'
def test_get_powerball_object() -> None:
data_value = ud.get_powerball_object(draw_date='2026-01-03', draw_result={'main_balls': [18, 21, 40, 53, 60],
'powerball': 23, 'multiplier': 3})
test_record = PowerballDraw(draw_date=datetime(2026, 1, 3).date(), main_ball1=18, main_ball2=21,
main_ball3=40, main_ball4=53, main_ball5=60, powerball=23, power_play=3)
data_value = ud.get_powerball_object(
draw_date='2026-01-03', draw_result={
'main_balls': [18, 21, 40, 53, 60],
'powerball': 23, 'multiplier': 3,
},
)
test_record = PowerballDraw(
draw_date=datetime(2026, 1, 3).date(), main_ball1=18, main_ball2=21,
main_ball3=40, main_ball4=53, main_ball5=60, powerball=23, power_play=3,
)
assert data_value == test_record
def test_get_mega_millions_object() -> None:
data_value = ud.get_mega_millions_object(draw_date='2010-02-02', draw_result={'main_balls': [6, 7, 26, 27, 49],
'mega-ball': 9, 'multiplier': 4})
test_record = MegaMillionsDraw(draw_date=datetime(2010, 2, 2).date(), main_ball1=6, main_ball2=7,
main_ball3=26, main_ball4=27, main_ball5=49, mega_ball=9, megaplier=4)
data_value = ud.get_mega_millions_object(
draw_date='2010-02-02', draw_result={
'main_balls': [6, 7, 26, 27, 49],
'mega-ball': 9, 'multiplier': 4,
},
)
test_record = MegaMillionsDraw(
draw_date=datetime(2010, 2, 2).date(), main_ball1=6, main_ball2=7,
main_ball3=26, main_ball4=27, main_ball5=49, mega_ball=9, megaplier=4,
)
assert data_value == test_record