def test_sync_task_can_be_cancelled_when_enqueued(self): things = [] # This will NOT be populated by tasks. service = DatabaseTasksService() yield service.startService() try: event = threading.Event() service.deferTask(event.wait) service.syncTask().cancel() finally: event.set() yield service.stopService() self.assertThat(things, Equals([]))
def test_sync_task_fires_with_service(self): service = DatabaseTasksService() service.startService() try: self.assertThat(service.syncTask().wait(30), Is(service)) finally: service.stopService()
def test__cannot_sync_task_when_queue_is_full(self): service = DatabaseTasksService(0) service.startService() try: event = threading.Event() service.addTask(event.wait) try: self.assertRaises(QueueOverflow, lambda: service.syncTask().wait(30)) finally: event.set() finally: service.stopService()