Skip to content

Commit 3569ea0

Browse files
committed
updated unit tests for workspace helper and date utils
1 parent b796966 commit 3569ea0

File tree

2 files changed

+36
-4
lines changed

2 files changed

+36
-4
lines changed

source/workspaces_app/workspaces_app/__tests__/test_workspaces_helper.py

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
from ..utils import workspace_utils
1212
from botocore.stub import Stubber
1313
from dateutil.tz import tzutc
14+
from freezegun import freeze_time
15+
from ..utils import date_utils
1416

1517

1618
@pytest.fixture(scope='module')
@@ -596,23 +598,29 @@ def test_check_if_workspace_needs_to_be_terminated_returns_yes_is_dry_run_false(
596598
assert result == 'Yes'
597599

598600

601+
@freeze_time("2020-11-29 03:21:34")
599602
def test_check_if_workspace_used_for_selected_period_returns_false_if_timestamp_is_none():
600603
last_known_user_connection_timestamp = None
601-
result = workspace_utils.check_if_workspace_used_for_selected_period(last_known_user_connection_timestamp)
604+
first_day_selected_month = date_utils.get_first_day_selected_month()
605+
result = workspace_utils.check_if_workspace_used_for_selected_period(last_known_user_connection_timestamp, first_day_selected_month)
602606
assert result is False
603607

604608

609+
@freeze_time("2022-11-29 03:21:34")
605610
def test_check_if_workspace_used_for_selected_period_returns_false_if_timestamp_is_before_first_day():
606611
last_known_user_connection_timestamp = datetime.datetime.strptime('2021-01-10 19:35:15.524000+00:00',
607612
'%Y-%m-%d %H:%M:%S.%f+00:00')
608-
result = workspace_utils.check_if_workspace_used_for_selected_period(last_known_user_connection_timestamp)
613+
first_day_selected_month = date_utils.get_first_day_selected_month()
614+
result = workspace_utils.check_if_workspace_used_for_selected_period(last_known_user_connection_timestamp, first_day_selected_month)
609615
assert result is False
610616

611617

618+
@freeze_time("2020-11-29 03:21:34")
612619
def test_check_if_workspace_used_for_selected_period_returns_true_if_timestamp_is_first_day_selected_month():
613620
last_known_user_connection_timestamp = datetime.datetime.utcnow().today().replace(day=1, hour=0, minute=0, second=0,
614621
microsecond=0)
615-
result = workspace_utils.check_if_workspace_used_for_selected_period(last_known_user_connection_timestamp)
622+
first_day_selected_month = date_utils.get_first_day_selected_month()
623+
result = workspace_utils.check_if_workspace_used_for_selected_period(last_known_user_connection_timestamp, first_day_selected_month)
616624
assert result is True
617625

618626

@@ -1289,3 +1297,19 @@ def test_check_if_workspace_needs_to_be_terminated_returns_empty_string_for_last
12891297
result = workspace_helper.check_if_workspace_needs_to_be_terminated(workspace_id)
12901298
assert result == ''
12911299

1300+
1301+
@freeze_time('2023-03-31', auto_tick_seconds=86400)
1302+
def test_check_if_workspace_used_for_selected_period_returns_true_for_multi_day_processing():
1303+
1304+
first_day_selected_month = datetime.datetime(year=2023, month=3, day=1).date()
1305+
last_known_user_connection_timestamp = datetime.datetime.strptime('2023-03-20 19:35:15.524000+00:00', '%Y-%m-%d %H:%M:%S.%f+00:00')
1306+
result = workspace_utils.check_if_workspace_used_for_selected_period(last_known_user_connection_timestamp, first_day_selected_month)
1307+
assert result is True
1308+
1309+
result1 = date_utils.get_first_day_selected_month()
1310+
result2 = date_utils.get_first_day_selected_month()
1311+
assert result2 == datetime.date(2023, 4, 1)
1312+
1313+
result = workspace_utils.check_if_workspace_used_for_selected_period(last_known_user_connection_timestamp, first_day_selected_month)
1314+
assert result is True
1315+

source/workspaces_app/workspaces_app/utils/__tests__/test_date_utils.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,12 @@ def test_get_date_time_values_for_processing_returns_all_the_correct_values():
6868
"current_month_last_day": False,
6969
"date_today": '11/29/20',
7070
"date_for_s3_key": '2020/11/29/'
71-
}
71+
}
72+
73+
74+
@freeze_time("2020-05-31 23:00:00", auto_tick_seconds=86400)
75+
def test_get_first_day_selected_month_returns_first_day_selected_month_then_returns_next_month_date():
76+
result = date_utils.get_first_day_selected_month()
77+
assert result == datetime.date(2020, 5, 1)
78+
result = date_utils.get_first_day_selected_month()
79+
assert result == datetime.date(2020, 6, 1)

0 commit comments

Comments
 (0)