Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Specify UTC timezone argument in datetime.now() and fix unit tests (#…
…6279) While running unit tests locally using `make test`, I saw these failures: ``` =========================================================================================================== short test summary info =========================================================================================================== FAILED tests/clickhouse/optimize/test_optimize.py::test_optimize_partitions_raises_exception_with_cutoff_time - Failed: DID NOT RAISE <class 'snuba.clickhouse.optimize.optimize_scheduler.OptimizedSchedulerTimeout'> FAILED tests/clickhouse/optimize/test_optimize_scheduler.py::test_get_next_schedule[non parallel] - assert OptimizationSchedule(partitions_groups=[["(90,'2022-06-27')",\n "(90,'2022-06-20')",\n ... FAILED tests/clickhouse/optimize/test_optimize_scheduler.py::test_get_next_schedule[parallel before final cutoff] - assert OptimizationSchedule(partitions_groups=[["(90,'2022-03-28')",\n "(90,'202... FAILED tests/clickhouse/optimize/test_optimize_scheduler.py::test_get_next_schedule_raises_exception - Failed: DID NOT RAISE <class 'snuba.clickhouse.optimize.optimize_scheduler.OptimizedSchedulerTimeout'> FAILED tests/subscriptions/test_scheduler_consumer.py::test_tick_time_shift - AssertionError: assert Tick(partition=0, offsets=Interval(lower=0, upper=1), timestamps=Interval(lower=86400.0, upper=172800.0)) == Tick(partition=0, offsets=... ========================================================================== 5 failed, 2601 passed, 4 skipped, 2 deselected, 1 xfailed, 6 xpassed in 430.69s (0:07:10) ========================================================================== ``` The reason for failure is that some of these tests use [time_machine's context manager](https://github.com/adamchainz/time-machine?tab=readme-ov-file#context-manager), which expects the time in UTC. When these tests are run locally in PST, there is a difference of 7 hours that never triggers the cutoff time expiry. ``` >>> from datetime import datetime, timezone >>> datetime.now() datetime.datetime(2024, 9, 9, 11, 51, 15, 279890) >>> datetime.now(timezone.utc) datetime.datetime(2024, 9, 9, 18, 51, 26, 40580, tzinfo=datetime.timezone.utc) ``` The fix is to use `datetime`'s `timezone.utc` instead of `datetime.now()`. `Datetime` also used to have `datetime.utcnow()` but it has been deprecated. Note: I also fixed some non-test code, so I would appreciate reviews from experts in those areas.
- Loading branch information