From fbd519488cac71155c5cd8e8fc65f9e96b7237c4 Mon Sep 17 00:00:00 2001 From: Eli Ribble Date: Thu, 30 Jul 2015 14:44:24 -0600 Subject: [PATCH] Add way to get clear checkpoints for starting new time periods --- pytest.ini | 3 +++ teamanalysis/time.py | 8 ++++++++ tests/test_time.py | 13 +++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 pytest.ini create mode 100644 teamanalysis/time.py create mode 100644 tests/test_time.py diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 0000000..15447e8 --- /dev/null +++ b/pytest.ini @@ -0,0 +1,3 @@ +[pytest] +norecursedirs = ve +addopts=--tb=short diff --git a/teamanalysis/time.py b/teamanalysis/time.py new file mode 100644 index 0000000..5ab7461 --- /dev/null +++ b/teamanalysis/time.py @@ -0,0 +1,8 @@ +import calendar +import datetime + +def get_checkpoint(n): + day_of_week = n.isoweekday() + new_day = n - datetime.timedelta(days=(day_of_week-1)) + checkpoint = datetime.datetime(new_day.year, new_day.month, new_day.day, 0, 0, 0, 1) + return checkpoint diff --git a/tests/test_time.py b/tests/test_time.py new file mode 100644 index 0000000..1462fe9 --- /dev/null +++ b/tests/test_time.py @@ -0,0 +1,13 @@ +import datetime +import pytest +import teamanalysis.time + +@pytest.mark.parametrize('when, expected', [ + (datetime.datetime(2015, 7, 30, 20, 35, 35, 784435), datetime.datetime(2015, 7, 27, 0, 0, 0, 1)), + (datetime.datetime(2015, 1, 3, 2, 5, 5, 7835), datetime.datetime(2014, 12, 29, 0, 0, 0, 1)), + (datetime.datetime(2015, 1, 5, 2, 5, 5, 7835), datetime.datetime(2015, 1, 5, 0, 0, 0, 1)), +]) +def test_checkpoint(when, expected): + checkpoint = teamanalysis.time.get_checkpoint(when) + assert checkpoint == expected +