|
11 | 11 | from ..utils import workspace_utils |
12 | 12 | from botocore.stub import Stubber |
13 | 13 | from dateutil.tz import tzutc |
| 14 | +from freezegun import freeze_time |
| 15 | +from ..utils import date_utils |
14 | 16 |
|
15 | 17 |
|
16 | 18 | @pytest.fixture(scope='module') |
@@ -596,23 +598,29 @@ def test_check_if_workspace_needs_to_be_terminated_returns_yes_is_dry_run_false( |
596 | 598 | assert result == 'Yes' |
597 | 599 |
|
598 | 600 |
|
| 601 | +@freeze_time("2020-11-29 03:21:34") |
599 | 602 | def test_check_if_workspace_used_for_selected_period_returns_false_if_timestamp_is_none(): |
600 | 603 | 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) |
602 | 606 | assert result is False |
603 | 607 |
|
604 | 608 |
|
| 609 | +@freeze_time("2022-11-29 03:21:34") |
605 | 610 | def test_check_if_workspace_used_for_selected_period_returns_false_if_timestamp_is_before_first_day(): |
606 | 611 | last_known_user_connection_timestamp = datetime.datetime.strptime('2021-01-10 19:35:15.524000+00:00', |
607 | 612 | '%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) |
609 | 615 | assert result is False |
610 | 616 |
|
611 | 617 |
|
| 618 | +@freeze_time("2020-11-29 03:21:34") |
612 | 619 | def test_check_if_workspace_used_for_selected_period_returns_true_if_timestamp_is_first_day_selected_month(): |
613 | 620 | last_known_user_connection_timestamp = datetime.datetime.utcnow().today().replace(day=1, hour=0, minute=0, second=0, |
614 | 621 | 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) |
616 | 624 | assert result is True |
617 | 625 |
|
618 | 626 |
|
@@ -1289,3 +1297,19 @@ def test_check_if_workspace_needs_to_be_terminated_returns_empty_string_for_last |
1289 | 1297 | result = workspace_helper.check_if_workspace_needs_to_be_terminated(workspace_id) |
1290 | 1298 | assert result == '' |
1291 | 1299 |
|
| 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 | + |
0 commit comments