async def setUpClass(cls): telegram_client = TelegramClient() # A hack to ensure dispatcher exist Dispatcher._set_singleton( # pylint: disable=W0212 telegram_client.updater.dispatcher) # pylint: disable=W0212 database_handle = Database(testing=True) database_handle.drop_testing_database() cls.client = Client(database_handle, telegram_client) cls.client.start() cls.user = TelegramUser() await cls.user.start() await cls.user.setup_chat()
def dp(_dp): # Reset the dispatcher first while not _dp.update_queue.empty(): _dp.update_queue.get(False) _dp.chat_data = defaultdict(dict) _dp.user_data = defaultdict(dict) _dp.handlers = {} _dp.groups = [] _dp.error_handlers = [] _dp.__stop_event = Event() _dp.__exception_event = Event() _dp.__async_queue = Queue() _dp.__async_threads = set() if _dp._Dispatcher__singleton_semaphore.acquire(blocking=0): Dispatcher._set_singleton(_dp) yield _dp Dispatcher._Dispatcher__singleton_semaphore.release()
def dp(_dp): # Reset the dispatcher first while not _dp.update_queue.empty(): _dp.update_queue.get(False) _dp.chat_data = defaultdict(dict) _dp.user_data = defaultdict(dict) _dp.handlers = {} _dp.groups = [] _dp.error_handlers = [] _dp.__stop_event = Event() _dp.__exception_event = Event() _dp.__async_queue = Queue() _dp.__async_threads = set() if _dp._Dispatcher__singleton_semaphore.acquire(blocking=0): Dispatcher._set_singleton(_dp) yield _dp Dispatcher._Dispatcher__singleton_semaphore.release()
def dp(_dp): # Reset the dispatcher first while not _dp.update_queue.empty(): _dp.update_queue.get(False) _dp.chat_data = defaultdict(dict) _dp.user_data = defaultdict(dict) _dp.bot_data = {} _dp.persistence = None _dp.handlers = {} _dp.groups = [] _dp.error_handlers = {} # For some reason if we setattr with the name mangled, then some tests(like async) run forever, # due to threads not acquiring, (blocking). This adds these attributes to the __dict__. object.__setattr__(_dp, '__stop_event', Event()) object.__setattr__(_dp, '__exception_event', Event()) object.__setattr__(_dp, '__async_queue', Queue()) object.__setattr__(_dp, '__async_threads', set()) _dp.persistence = None _dp.use_context = False if _dp._Dispatcher__singleton_semaphore.acquire(blocking=0): Dispatcher._set_singleton(_dp) yield _dp Dispatcher._Dispatcher__singleton_semaphore.release()