forked from Pavel_Durov/python_bot
76 lines
3.3 KiB
Python
76 lines
3.3 KiB
Python
|
|
||
|
import unittest
|
||
|
import datetime
|
||
|
|
||
|
|
||
|
|
||
|
def rolltime(check_datetime , curr_time=datetime.datetime.now()):
|
||
|
|
||
|
last_time = datetime.datetime.strptime(check_datetime, '%Y-%m-%d %H:%M:%S')
|
||
|
time_to_grow = curr_time.replace(hour=14, minute=8, second=8, microsecond=0) #+ datetime.timedelta(days=0)
|
||
|
|
||
|
timediff = (time_to_grow - last_time).total_seconds()
|
||
|
|
||
|
# print(f'\tlast_time : {last_time}')
|
||
|
# print(f'\ttime_to_grow : {time_to_grow}')
|
||
|
# print(f'\tcurr_time : {curr_time.strftime("%Y-%m-%d %H:%M:%S")}')
|
||
|
# print(f'\t\tsecs diff : {timediff}')
|
||
|
|
||
|
if timediff > 86400 or curr_time > time_to_grow:
|
||
|
return True
|
||
|
else:
|
||
|
return False
|
||
|
|
||
|
|
||
|
|
||
|
class TestPipisa(unittest.TestCase):
|
||
|
def test_very_long_ago(self):
|
||
|
self.assertEqual(rolltime('2021-10-11 23:44:00'), True, "Пиписа прокручена очень давно. Очевидный прокрут")
|
||
|
|
||
|
def test_just_after(self):
|
||
|
self.assertEqual(rolltime(
|
||
|
datetime.datetime.now().replace(hour=14, minute=9, second=8, microsecond=0).strftime('%Y-%m-%d %H:%M:%S')
|
||
|
), False, "Попытка крутить когда старый прокрут был через 1 минуту после сегодняшнего обновления роллов. Фейл.")
|
||
|
|
||
|
def test_yesterdayroll(self):
|
||
|
self.assertEqual(
|
||
|
rolltime(
|
||
|
(
|
||
|
datetime.datetime.now().replace(hour=14, minute=9, second=8, microsecond=0) - datetime.timedelta(days=1)
|
||
|
).strftime('%Y-%m-%d %H:%M:%S'),
|
||
|
datetime.datetime.now().replace(hour=14, minute=9, second=8, microsecond=0)
|
||
|
), True, "Крутилась вчера через минуту после обновления роллов. Должно пропускать ")
|
||
|
|
||
|
|
||
|
def test_hour_before_roll(self):
|
||
|
self.assertEqual(
|
||
|
rolltime(
|
||
|
(
|
||
|
datetime.datetime.now().replace(hour=14, minute=9, second=8, microsecond=0) - datetime.timedelta(hours=1)
|
||
|
).strftime('%Y-%m-%d %H:%M:%S'),
|
||
|
datetime.datetime.now().replace(hour=14, minute=9, second=8, microsecond=0)
|
||
|
), True, "Крутилась последний раз за час до прокрута. Надо разрешать заново!")
|
||
|
|
||
|
def test_after_midnight(self):
|
||
|
self.assertEqual(
|
||
|
rolltime(
|
||
|
(
|
||
|
datetime.datetime.now().replace(hour=14, minute=9, second=8, microsecond=0) - datetime.timedelta(hours=14)
|
||
|
).strftime('%Y-%m-%d %H:%M:%S'),
|
||
|
datetime.datetime.now().replace(hour=0, minute=11, second=8, microsecond=0)
|
||
|
), False, "Где-то ночью прокручивается повторно. Фейл.")
|
||
|
|
||
|
def test_before_midnight(self):
|
||
|
self.assertEqual(
|
||
|
rolltime(
|
||
|
(
|
||
|
datetime.datetime.now().replace(hour=14, minute=9, second=8, microsecond=0) - datetime.timedelta(hours=15)
|
||
|
).strftime('%Y-%m-%d %H:%M:%S'),
|
||
|
datetime.datetime.now().replace(hour=0, minute=11, second=8, microsecond=0) - datetime.timedelta(hours=15)
|
||
|
), False, "Где-то ночью прокручивается повторно. Фейл.")
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
unittest.main()
|