"""Test cases for datetime utility module.""" import datetime from unittest import mock import pytest from processing_accounting.flows.custom_export.util import datetime as dt_util @pytest.mark.parametrize('str_date, expected_result', [ ('2018-03-22 16:42:52', datetime.datetime(2018, 3, 22, 16, 42, 52)), ('1999-12-31 10:00:00', datetime.datetime(1999, 12, 31, 10, 0, 0)), ]) def test_formatted_str_to_datetime(str_date, expected_result): """Test formatted_str_to_datetime utility function.""" assert dt_util.formatted_str_to_datetime(str_date) == expected_result @pytest.mark.parametrize('download_start, expected_result', [ (datetime.datetime(2018, 3, 22, 10, 0, 0), False), (datetime.datetime(2018, 3, 21, 20, 0, 0), True), ]) @mock.patch('processing_accounting.flows.custom_export.util.datetime.datetime') @mock.patch('processing_accounting.flows.custom_export.util.datetime.setting') def test_is_expired_workflow( setting, mock_datetime, download_start, expected_result): """Test is_expired_workflow utility function.""" expiration_time_hours = 10 setting.WORKFLOW_EXPIRATION_TIME = expiration_time_hours mock_datetime.timedelta.side_effect = datetime.timedelta mock_datetime.datetime.utcnow.return_value = datetime.datetime( 2018, 3, 22, 17, 0, 0) assert dt_util.is_expired_workflow(download_start) == expected_result