import unittest import datetime import time_machine from src import sheduler class TestDate(unittest.TestCase): def test_date_tue(self): """ test near tue тестирует корректность расчета даты на след. вторник условия: расчет начат от воскресенья или понедельника (случайно) """ import calendar import random for month in range(1, 13): sundays = [i for i in calendar.Calendar().itermonthdays4(year=2024, month=month) if i[3] == 6] for sunday in sundays: fake_date = datetime.datetime(year=sunday[0], month=sunday[1], day=sunday[2], hour=random.randint(21, 23)) + datetime.timedelta(days=random.randint(0, 1)) with time_machine.travel(fake_date): try: result = sheduler.check_stop_thread_scan(fake_date) print("current fake date: " + fake_date.strftime("%Y.%m.%d %H:%M") + f" near tue: {result}") except Exception as E: print("fail fake date: " + fake_date.strftime("%Y.%m.%d %H:%M") + f", err: {E}") if __name__ == '__main__': unittest.main()