Skip to content

Commit dc52fab

Browse files
committed
test for aoc --example
1 parent aeed1ba commit dc52fab

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

tests/test_runner.py

+40
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,13 @@ def fake_entry_point(year, day, data):
6868
return "answer1", "wrong"
6969

7070

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+
7178
def xmas_entry_point(year, day, data):
7279
assert year == 2015
7380
assert day == 25
@@ -250,6 +257,39 @@ def test_run_and_no_autosubmit(aocd_data_dir, mocker, capsys, pook):
250257
assert "part b: wrong (correct answer unknown)" in out
251258

252259

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+
253293
def file_entry_point(year, day, data):
254294
assert year == 2015
255295
assert day == 1

0 commit comments

Comments
 (0)