| class MockToken: | |
| def __init__(self, valid, refresh_token='refresh_token'): | |
| self.valid = valid | |
| self.expired = not valid | |
| self.refresh_token = refresh_token | |
| def refresh(self, _): | |
| self.valid = True | |
| self.expired = False | |
| def executable(fn): | |
| """Decorator that stores data received from the function in object that returns that data when | |
| called its `execute` method. Emulates HttpRequest from googleapiclient.""" | |
| class Executable: | |
| def __init__(self, data): | |
| self.data = data | |
| def execute(self): | |
| return self.data | |
| def wrapper(*args, **kwargs): | |
| data = fn(*args, **kwargs) | |
| return Executable(data) | |
| return wrapper | |
| def within(dt, time_min, time_max): | |
| return time_min <= dt <= time_max | |
| def time_range_within(tr, time_min, time_max): | |
| start, end = tr | |
| return within(start, time_min, time_max) and within(end, time_min, time_max) | |