Proper unit test mocking for timezone aware DateTime objects

Just now saw your edit but it doesn’t change much. You can still make your mock respect timezone offsets.

Alternatively, I think you can just use a proper timezone database and instruct it to not do network requests.

tz has very configurable behaviour on when (or if?) to do automatic updates.

Here’s a link to the docs of tzdata that show you how to disable automatic updates.