From 09a6f414f0d8ee704482e103d42605baaf7596e1 Mon Sep 17 00:00:00 2001 From: Paul Ganssle Date: Thu, 25 Oct 2018 13:32:32 -0400 Subject: Add documentation exercises to pytest --- docs/exercises/solutions/mlk-day-rrule.rst | 41 ++-------------------- docs/exercises/solutions/mlk_day_rrule_solution.py | 40 +++++++++++++++++++++ setup.cfg | 4 +++ 3 files changed, 46 insertions(+), 39 deletions(-) create mode 100644 docs/exercises/solutions/mlk_day_rrule_solution.py diff --git a/docs/exercises/solutions/mlk-day-rrule.rst b/docs/exercises/solutions/mlk-day-rrule.rst index b8da806..3292616 100644 --- a/docs/exercises/solutions/mlk-day-rrule.rst +++ b/docs/exercises/solutions/mlk-day-rrule.rst @@ -6,43 +6,6 @@ Martin Luther King Day: Solution Presented here is a solution to the :ref:`Martin Luther King Day exercises `. -.. code-block:: python3 - - # ------- YOUR CODE -------------# - from dateutil import rrule - from datetime import datetime - - MLK_DAY = rrule.rrule( - dtstart=datetime(1986, 1, 20), # First celebration - freq=rrule.YEARLY, # Occurs once per year - bymonth=1, # In January - byweekday=rrule.MO(+3), # On the 3rd Monday - ) - - # -------------------------------# - - from datetime import datetime - MLK_TEST_CASES = [ - ((datetime(1970, 1, 1), datetime(1980, 1, 1)), - []), - ((datetime(1980, 1, 1), datetime(1989, 1, 1)), - [datetime(1986, 1, 20), - datetime(1987, 1, 19), - datetime(1988, 1, 18)]), - ((datetime(2017, 2, 1), datetime(2022, 2, 1)), - [datetime(2018, 1, 15, 0, 0), - datetime(2019, 1, 21, 0, 0), - datetime(2020, 1, 20, 0, 0), - datetime(2021, 1, 18, 0, 0), - datetime(2022, 1, 17, 0, 0)] - ), - ] - - def test_mlk_day(): - for (between_args, expected) in MLK_TEST_CASES: - assert MLK_DAY.between(*between_args) == expected - - if __name__ == "__main__": - test_mlk_day() - print('Success!') +.. include:: mlk_day_rrule_solution.py + :code: python3 diff --git a/docs/exercises/solutions/mlk_day_rrule_solution.py b/docs/exercises/solutions/mlk_day_rrule_solution.py new file mode 100644 index 0000000..025ebf2 --- /dev/null +++ b/docs/exercises/solutions/mlk_day_rrule_solution.py @@ -0,0 +1,40 @@ +# ------- YOUR CODE -------------# +from dateutil import rrule +from datetime import datetime + +MLK_DAY = rrule.rrule( + dtstart=datetime(1986, 1, 20), # First celebration + freq=rrule.YEARLY, # Occurs once per year + bymonth=1, # In January + byweekday=rrule.MO(+3), # On the 3rd Monday +) + +# -------------------------------# + +from datetime import datetime + +MLK_TEST_CASES = [ + ((datetime(1970, 1, 1), datetime(1980, 1, 1)), + []), + ((datetime(1980, 1, 1), datetime(1989, 1, 1)), + [datetime(1986, 1, 20), + datetime(1987, 1, 19), + datetime(1988, 1, 18)]), + ((datetime(2017, 2, 1), datetime(2022, 2, 1)), + [datetime(2018, 1, 15, 0, 0), + datetime(2019, 1, 21, 0, 0), + datetime(2020, 1, 20, 0, 0), + datetime(2021, 1, 18, 0, 0), + datetime(2022, 1, 17, 0, 0)] + ), +] + + +def test_mlk_day(): + for (between_args, expected) in MLK_TEST_CASES: + assert MLK_DAY.between(*between_args) == expected + + +if __name__ == "__main__": + test_mlk_day() + print('Success!') diff --git a/setup.cfg b/setup.cfg index 4a8ed2b..22ab896 100644 --- a/setup.cfg +++ b/setup.cfg @@ -5,6 +5,10 @@ universal = 1 license_file = LICENSE [tool:pytest] +python_files= + test_*.py + *_test.py + *_solution.py xfail_strict = true filterwarnings = error -- cgit v1.2.3