def test_solve_no_plugs(mocker):
    mock = mocker.patch("pkg_resources.iter_entry_points", return_value=iter([]))
    puzzle = Puzzle(year=2018, day=1)
    expected = AocdError("Puzzle.solve is only available with unique entry point")
    with pytest.raises(expected):
        puzzle.solve()
    mock.assert_called_once_with(group="adventofcode.user")
def test_solve_one_plug(aocd_dir, mocker):
    input_path = aocd_dir / "thetesttoken" / "2018_01_input.txt"
    input_path.write_text("someinput")
    ep = mocker.Mock()
    ep.name = "myplugin"
    mocker.patch("pkg_resources.iter_entry_points", return_value=iter([ep]))
    puzzle = Puzzle(year=2018, day=1)
    puzzle.solve()
    ep.load.return_value.assert_called_once_with(year=2018, day=1, data="someinput")