Downloads puzzle inputs for Advent of Code and synthesizes PyTest fixtures
This pytest plugin downloads puzzle inputs for [Advent of Code] and synthesizes fixtures that you can use in your tests.
Installing and configuring
Installing is easy:
pip install pytest-aoc. Next you will need to configure
two things: for which event (year) the plugin should download inputs, and a
valid session cookie. These are normally valid for about a month or so.
To set the year, put it in
[tool:pytest] aoc_year = 2018
Then, put a valid session ID in a file named
.cookie and also name this file
With these two things in place, when running pytest, this plugin will download any missing inputs, and generate pytest fixtures that you can use in your test functions, see 'Using' and 'Fixtures', below.
With this plugin properly configured, you can write tests like this:
def test_01a(day01_numbers): assert sum(day01_numbers) == 123
Here, the parameter
day01_numbers is a fixture that contains the numbers on
each line in the file
These fixtures are synthesized for each available day. They're not executed until you ask for them in a test.
dayNN_text: The text in the input file, but stripped of any leading and trailing whitespace.
dayNN_raw: The raw text in the input file.
dayNN_lines: A list of lines.
dayNN_numbers: A list of numbers.
dayNN_number: A single number.
dayNN_grid: A list of lists, representing a grid of textual values.
dayNN_number_grid: A list of lists, representing a grid of numbers.
Command-line and configuration options
You can pass the options from the command line or set them in setup.cfg. The command line takes precedence.
aoc_year: The year for which to download puzzle inputs. (Mandatory)
aoc_session_id: The session ID to use for requesting puzzle inputs. (Optional)
aoc_session_file: The file from which to read the session ID. (Optional; default
aoc_input_dir: The directory in which inputs are stored. Will be created if it doesn't exist. (Optional; default
Release history Release notifications
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size & hash SHA256 hash help||File type||Python version||Upload date|
|pytest_aoc-1.1-py3-none-any.whl (3.9 kB) Copy SHA256 hash SHA256||Wheel||py3|
|pytest-aoc-1.1.tar.gz (3.3 kB) Copy SHA256 hash SHA256||Source||None|