mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-23 00:41:35 -05:00
Use BST to calculate monthly billing
This commit is contained in:
@@ -2,6 +2,8 @@ from datetime import datetime, timedelta
|
|||||||
|
|
||||||
import pytz
|
import pytz
|
||||||
|
|
||||||
|
from app.utils import convert_bst_to_utc
|
||||||
|
|
||||||
|
|
||||||
def get_financial_year(year):
|
def get_financial_year(year):
|
||||||
return get_april_fools(year), get_april_fools(year + 1) - timedelta(microseconds=1)
|
return get_april_fools(year), get_april_fools(year + 1) - timedelta(microseconds=1)
|
||||||
@@ -28,4 +30,4 @@ def get_month_start_end_date(month_year):
|
|||||||
_, num_days = calendar.monthrange(month_year.year, month_year.month)
|
_, num_days = calendar.monthrange(month_year.year, month_year.month)
|
||||||
first_day = datetime(month_year.year, month_year.month, 1, 0, 0, 0)
|
first_day = datetime(month_year.year, month_year.month, 1, 0, 0, 0)
|
||||||
last_day = datetime(month_year.year, month_year.month, num_days, 23, 59, 59, 99999)
|
last_day = datetime(month_year.year, month_year.month, num_days, 23, 59, 59, 99999)
|
||||||
return first_day, last_day
|
return convert_bst_to_utc(first_day), convert_bst_to_utc(last_day)
|
||||||
|
|||||||
@@ -17,14 +17,15 @@ def test_get_april_fools():
|
|||||||
assert april_fools.tzinfo is None
|
assert april_fools.tzinfo is None
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("month, year, expected_end",
|
@pytest.mark.parametrize("month, year, expected_start, expected_end",
|
||||||
[(7, 2017, 31),
|
[
|
||||||
(2, 2016, 29),
|
(7, 2017, datetime(2017, 6, 30, 23, 00, 00), datetime(2017, 7, 31, 22, 59, 59, 99999)),
|
||||||
(2, 2017, 28),
|
(2, 2016, datetime(2016, 2, 1, 00, 00, 00), datetime(2016, 2, 29, 23, 59, 59, 99999)),
|
||||||
(9, 2018, 30),
|
(2, 2017, datetime(2017, 2, 1, 00, 00, 00), datetime(2017, 2, 28, 23, 59, 59, 99999)),
|
||||||
(12, 2019, 31)])
|
(9, 2018, datetime(2018, 8, 31, 23, 00, 00), datetime(2018, 9, 30, 22, 59, 59, 99999)),
|
||||||
def test_get_month_start_end_date(month, year, expected_end):
|
(12, 2019, datetime(2019, 12, 1, 00, 00, 00), datetime(2019, 12, 31, 23, 59, 59, 99999))])
|
||||||
|
def test_get_month_start_end_date(month, year, expected_start, expected_end):
|
||||||
month_year = datetime(year, month, 10, 13, 30, 00)
|
month_year = datetime(year, month, 10, 13, 30, 00)
|
||||||
result = get_month_start_end_date(month_year)
|
result = get_month_start_end_date(month_year)
|
||||||
assert result[0] == datetime(year, month, 1, 0, 0, 0, 0)
|
assert result[0] == expected_start
|
||||||
assert result[1] == datetime(year, month, expected_end, 23, 59, 59, 99999)
|
assert result[1] == expected_end
|
||||||
|
|||||||
Reference in New Issue
Block a user