11import pytest
2- import utils .date_time_utils
2+ from utils .date_time_utils import DateTimeUtils
33from datetime import datetime , timedelta
44
5- pytestmark = [pytest .mark .utils ]
6-
75
86def test_current_datetime ():
9- dtu = utils . date_time_utils . DateTimeUtils ()
7+ dtu = DateTimeUtils ()
108 current_date = datetime .now ()
119 assert dtu .current_datetime () == current_date .strftime ("%d/%m/%Y %H:%M" )
1210 assert dtu .current_datetime ("%Y-%m-%d %H:%M" ) == current_date .strftime (
@@ -18,15 +16,15 @@ def test_current_datetime():
1816
1917
2018def test_format_date ():
21- dtu = utils . date_time_utils . DateTimeUtils ()
19+ dtu = DateTimeUtils ()
2220 date = datetime (2022 , 12 , 31 )
2321 assert dtu .format_date (date , "%d/%m/%Y" ) == "31/12/2022"
2422 assert dtu .format_date (date , "%Y/%m/%d" ) == "2022/12/31"
2523 assert dtu .format_date (date , "%d %B %Y" ) == "31 December 2022"
2624
2725
2826def test_add_days ():
29- dtu = utils . date_time_utils . DateTimeUtils ()
27+ dtu = DateTimeUtils ()
3028 date = datetime .now ()
3129 new_date = dtu .add_days (date , 5 )
3230 assert new_date == date + timedelta (days = 5 )
@@ -45,13 +43,23 @@ def test_add_days():
4543
4644
4745def test_get_day_of_week_with_specific_date ():
48- dtu = utils . date_time_utils . DateTimeUtils ()
46+ dtu = DateTimeUtils ()
4947 date = datetime (2023 , 11 , 8 ) # Known Wednesday
5048 day_of_week = dtu .get_day_of_week (date )
5149 assert day_of_week in VALID_WEEKDAYS
5250
5351
5452def test_get_day_of_week_with_default_today ():
55- dtu = utils . date_time_utils . DateTimeUtils ()
53+ dtu = DateTimeUtils ()
5654 day_of_week = dtu .get_day_of_week ()
5755 assert day_of_week in VALID_WEEKDAYS
56+
57+
58+ def test_random_offset_within_bounds ():
59+ start_date = datetime (2025 , 1 , 1 )
60+ end_date = datetime (2025 , 1 , 31 )
61+
62+ for _ in range (100 ): # Run multiple times to catch edge randomness
63+ offset = DateTimeUtils .random_offset (start_date , end_date )
64+ assert isinstance (offset , int )
65+ assert 0 <= offset <= (end_date - start_date ).days
0 commit comments