spulec / freezegun

Let your Python tests travel through time
Apache License 2.0
4.15k stars 269 forks source link

'FakeDatetime' object cannot be interpreted as an integer #514

Open Woody1193 opened 11 months ago

Woody1193 commented 11 months ago

When trying to run the following code:

def ceil_dt(time: datetime, delta: timedelta) -> datetime:
    return time + (datetime.min - time) % delta

@freezetime("2023-10-17 16:27:59")
def test():
    ceil_dt(datetime.now(), timedelta(minutes = 30)) == datetime(2023, 10, 17, 16, 30, 0)

I get the following error:

TypeError: 'FakeDatetime' object cannot be interpreted as an integer

Seems that this should work as expected since datetime objects wrap integers.