@@ -36,3 +36,28 @@ def test_day_is_invalid(mocker):
3636 mocker .patch ("aocd.get.traceback.extract_stack" , return_value = fake_stack )
3737 with pytest .raises (AocdError ("Failed introspection of day" )):
3838 get_day_and_year ()
39+
40+
41+ def test_ipynb_ok (mocker ):
42+ fake_stack = [("ipykernel/123456789.py" , 1 , "<test>" , "from aocd import data" )]
43+ mocker .patch ("aocd.get.traceback.extract_stack" , return_value = fake_stack )
44+ mocker .patch ("aocd.get.get_ipynb_path" , return_value = "puzzle-2020-03.py" )
45+ day , year = get_day_and_year ()
46+ assert day == 3
47+ assert year == 2020
48+
49+
50+ def test_ipynb_fail (mocker ):
51+ fake_stack = [("ipykernel/123456789.py" , 1 , "<test>" , "from aocd import data" )]
52+ mocker .patch ("aocd.get.traceback.extract_stack" , return_value = fake_stack )
53+ mocker .patch ("aocd.get.get_ipynb_path" , side_effect = ImportError )
54+ with pytest .raises (AocdError ("Failed introspection of filename" )):
55+ get_day_and_year ()
56+
57+
58+ def test_ipynb_fail_no_numbers_in_ipynb_filename (mocker ):
59+ fake_stack = [("ipykernel/123456789.py" , 1 , "<test>" , "from aocd import data" )]
60+ mocker .patch ("aocd.get.traceback.extract_stack" , return_value = fake_stack )
61+ mocker .patch ("aocd.get.get_ipynb_path" , "puzzle.py" )
62+ with pytest .raises (AocdError ("Failed introspection of filename" )):
63+ get_day_and_year ()
0 commit comments