2017-01-27 12:21:28 +00:00
|
|
|
from datetime import datetime
|
|
|
|
|
import pytest
|
|
|
|
|
|
|
|
|
|
from app.utils import (
|
2017-01-27 15:57:25 +00:00
|
|
|
get_london_midnight_in_utc,
|
2017-04-03 15:49:23 +01:00
|
|
|
get_midnight_for_day_before,
|
2017-05-17 15:06:15 +01:00
|
|
|
convert_utc_time_in_bst,
|
|
|
|
|
convert_bst_to_utc)
|
2017-01-27 12:21:28 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize('date, expected_date', [
|
|
|
|
|
(datetime(2016, 1, 15, 0, 30), datetime(2016, 1, 15, 0, 0)),
|
2017-01-27 15:57:25 +00:00
|
|
|
(datetime(2016, 6, 15, 0, 0), datetime(2016, 6, 14, 23, 0)),
|
|
|
|
|
(datetime(2016, 9, 15, 11, 59), datetime(2016, 9, 14, 23, 0)),
|
2017-01-27 12:21:28 +00:00
|
|
|
])
|
2017-01-27 15:57:25 +00:00
|
|
|
def test_get_london_midnight_in_utc_returns_expected_date(date, expected_date):
|
|
|
|
|
assert get_london_midnight_in_utc(date) == expected_date
|
2017-01-27 12:21:28 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize('date, expected_date', [
|
|
|
|
|
(datetime(2016, 1, 15, 0, 30), datetime(2016, 1, 14, 0, 0)),
|
2017-01-27 15:57:25 +00:00
|
|
|
(datetime(2016, 7, 15, 0, 0), datetime(2016, 7, 13, 23, 0)),
|
|
|
|
|
(datetime(2016, 8, 23, 11, 59), datetime(2016, 8, 21, 23, 0)),
|
2017-01-27 12:21:28 +00:00
|
|
|
])
|
|
|
|
|
def test_get_midnight_for_day_before_returns_expected_date(date, expected_date):
|
|
|
|
|
assert get_midnight_for_day_before(date) == expected_date
|
2017-04-03 15:49:23 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize('date, expected_date', [
|
|
|
|
|
(datetime(2017, 3, 26, 23, 0), datetime(2017, 3, 27, 0, 0)), # 2017 BST switchover
|
|
|
|
|
(datetime(2017, 3, 20, 23, 0), datetime(2017, 3, 20, 23, 0)),
|
|
|
|
|
(datetime(2017, 3, 28, 10, 0), datetime(2017, 3, 28, 11, 0)),
|
|
|
|
|
(datetime(2017, 10, 28, 1, 0), datetime(2017, 10, 28, 2, 0)),
|
|
|
|
|
(datetime(2017, 10, 29, 1, 0), datetime(2017, 10, 29, 1, 0)),
|
2017-05-17 15:06:15 +01:00
|
|
|
(datetime(2017, 5, 12, 14), datetime(2017, 5, 12, 15, 0))
|
2017-04-03 15:49:23 +01:00
|
|
|
])
|
|
|
|
|
def test_get_utc_in_bst_returns_expected_date(date, expected_date):
|
2017-05-17 15:06:15 +01:00
|
|
|
ret_date = convert_utc_time_in_bst(date)
|
2017-04-03 15:49:23 +01:00
|
|
|
assert ret_date == expected_date
|
2017-05-17 15:06:15 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_convert_bst_to_utc():
|
2017-05-24 14:52:32 +01:00
|
|
|
bst = "2017-05-12 13:15"
|
|
|
|
|
bst_datetime = datetime.strptime(bst, "%Y-%m-%d %H:%M")
|
2017-05-17 15:06:15 +01:00
|
|
|
utc = convert_bst_to_utc(bst_datetime)
|
2017-05-24 14:52:32 +01:00
|
|
|
assert utc == datetime(2017, 5, 12, 12, 15)
|