@@ -68,6 +68,13 @@ def fake_entry_point(year, day, data):
68
68
return "answer1" , "wrong"
69
69
70
70
71
+ def fake_entry_point_25 (year , day , data ):
72
+ assert year == 2022
73
+ assert day == 25
74
+ assert data == "test example data"
75
+ return "answer_a" , ""
76
+
77
+
71
78
def xmas_entry_point (year , day , data ):
72
79
assert year == 2015
73
80
assert day == 25
@@ -250,6 +257,39 @@ def test_run_and_no_autosubmit(aocd_data_dir, mocker, capsys, pook):
250
257
assert "part b: wrong (correct answer unknown)" in out
251
258
252
259
260
+ def test_run_against_examples (aocd_data_dir , mocker , capsys , pook ):
261
+ prose_dir = aocd_data_dir / "prose"
262
+ prose_dir .mkdir ()
263
+ puzzle_file = prose_dir / "2022_25_prose.0.html"
264
+ puzzle_file .write_text (
265
+ """
266
+ <title>Day 25 - Advent of Code 2022</title>
267
+ <h2>--- Day 25: The Puzzle Title ---</h2>
268
+ <article>
269
+ <pre>test example data</pre>
270
+ <code>test answer_a</code>
271
+ </article>
272
+ """
273
+ )
274
+ pook .get (url = "https://adventofcode.com/2022/day/25" )
275
+ ep = mocker .Mock ()
276
+ ep .name = "testuser"
277
+ ep .load .return_value = fake_entry_point_25
278
+ mocker .patch ("aocd.runner.get_plugins" , return_value = [ep ])
279
+ run_for (
280
+ plugs = ["testuser" ],
281
+ years = [2022 ],
282
+ days = [25 ],
283
+ datasets = {"default" : "thetesttoken" },
284
+ example = True ,
285
+ )
286
+ out , err = capsys .readouterr ()
287
+ assert "2022/25 - The Puzzle Title" in out
288
+ assert " testuser/example-1 " in out
289
+ assert "part a: answer_a" in out
290
+ assert "part b:" not in out
291
+
292
+
253
293
def file_entry_point (year , day , data ):
254
294
assert year == 2015
255
295
assert day == 1
0 commit comments