mirror of
https://github.com/Mesteriis/hassio-addons-avm.git
synced 2026-01-11 07:51:02 +01:00
update repository references and improve script handling
This commit is contained in:
54
hassio-google-drive-backup/tests/faketime.py
Normal file
54
hassio-google-drive-backup/tests/faketime.py
Normal file
@@ -0,0 +1,54 @@
|
||||
import asyncio
|
||||
from datetime import datetime, timedelta
|
||||
from backup.time import Time
|
||||
from pytz import timezone
|
||||
|
||||
|
||||
class FakeTime(Time):
|
||||
def __init__(self, now: datetime = None):
|
||||
super().__init__(local_tz=timezone('EST'))
|
||||
if now:
|
||||
self._now = now
|
||||
else:
|
||||
self._now = self.toUtc(
|
||||
datetime(1985, 12, 6, 0, 0, 0, tzinfo=timezone('EST')))
|
||||
self._start = self._now
|
||||
self.sleeps = []
|
||||
|
||||
def setTimeZone(self, tz):
|
||||
if isinstance(tz, str):
|
||||
self.local_tz = timezone(tz)
|
||||
else:
|
||||
self.local_tz = tz
|
||||
|
||||
def monotonic(self):
|
||||
return (self._now - self._start).total_seconds()
|
||||
|
||||
def setNow(self, now: datetime):
|
||||
self._now = now
|
||||
return self
|
||||
|
||||
def advanceDay(self, days=1):
|
||||
return self.advance(days=1)
|
||||
|
||||
def advance(self, days=0, hours=0, minutes=0, seconds=0, duration=None):
|
||||
self._now = self._now + \
|
||||
timedelta(days=days, hours=hours, seconds=seconds, minutes=minutes)
|
||||
if duration is not None:
|
||||
self._now = self._now + duration
|
||||
return self
|
||||
|
||||
def now(self) -> datetime:
|
||||
return self._now
|
||||
|
||||
def nowLocal(self) -> datetime:
|
||||
return self.toLocal(self._now)
|
||||
|
||||
async def sleepAsync(self, seconds: float, _exit_early: asyncio.Event = None):
|
||||
self.sleeps.append(seconds)
|
||||
self._now = self._now + timedelta(seconds=seconds)
|
||||
# allow the task to be interrupted if such a thing is requested.
|
||||
await asyncio.sleep(0)
|
||||
|
||||
def clearSleeps(self):
|
||||
self.sleeps = []
|
||||
Reference in New Issue
Block a user