From 2e4ec892a0897e35a1399dcb7e3930e2ba7978dd Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Mon, 2 Mar 2026 17:10:12 -0500 Subject: [PATCH] Create new tests of Powerball table using new config --- tests/test_powerball.py | 66 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 tests/test_powerball.py diff --git a/tests/test_powerball.py b/tests/test_powerball.py new file mode 100644 index 0000000..fe00044 --- /dev/null +++ b/tests/test_powerball.py @@ -0,0 +1,66 @@ +from datetime import datetime +from sqlite3 import IntegrityError + +from conftest import PowerballDraw + + +def test_create_powerball_draw(db_session) -> None: + """add a record""" + date = datetime(2010, 2, 3).date() + new_record = PowerballDraw(draw_date=date, main_ball1=17, main_ball2=22, main_ball3=36, main_ball4=37, + main_ball5=52, powerball=24, power_play=2) + db_session.add(new_record) + db_session.commit() + + # verify the record exists + record = db_session.query(PowerballDraw).filter_by(draw_date=date).first() + assert record is not None + assert record == new_record + + +def test_powerball_draw_isolation(db_session) -> None: + """query for all records in the database""" + draws = db_session.query(PowerballDraw).all() + assert len(draws) == 0 + + +def test_powerball_draw_by_date_blank(db_session) -> None: + """query for all powerball records with a blank date""" + blank_results = db_session.query(PowerballDraw).filter_by(draw_date='').all() + assert len(blank_results) == 0 + + +def test_powerball_draw_integrity(db_session) -> None: + """ensure that duplicate records cannot be inserted""" + date = datetime(2010, 2, 3).date() + new_record = PowerballDraw(draw_date=date, main_ball1=17, main_ball2=22, main_ball3=36, main_ball4=37, + main_ball5=52, powerball=24, power_play=2) + + try: + # insert a new record + db_session.add(new_record) + db_session.commit() + + # try inserting the same record again + db_session.add(new_record) + db_session.commit() + except IntegrityError: + assert True + + +def test_powerball_draw_repr_and_str(db_session) -> None: + """test the __repr__ and __str__ methods of PowerballDraw""" + date = datetime(2010, 2, 3).date() + new_record = PowerballDraw(draw_date=date, main_ball1=17, main_ball2=22, main_ball3=36, main_ball4=37, + main_ball5=52, powerball=24, power_play=2) + + # insert a new record + db_session.add(new_record) + db_session.commit() + + # query the record + record = db_session.query(PowerballDraw).filter_by(draw_date=date).first() + + # compare the str and repr values of each + assert str(record) == str(new_record) + assert repr(record) == repr(new_record)