def test_basic(self): items = ActiveWorkItems.lookup_by_queue("test-queue") queued_items = [1, 2] # db.Model only stores dates to second resolution, so we use an explicit datetime without milliseconds. time = datetime(2011, 4, 18, 18, 50, 44) self.assertEqual(items.next_item(queued_items, time), 1) self.assertEqual(items.next_item([1], time), None) self.assertEqual(items.next_item([], time), None) self.assertEqual(items.time_for_item(1), time) self.assertEqual(items.time_for_item(2), None) items.expire_item(1) # expire_item uses a transaction so it doesn't take effect on the current object. self.assertEqual(items.time_for_item(1), time) # If we look up the saved object, we see it's been updated. items = ActiveWorkItems.lookup_by_queue("test-queue") self.assertEqual(items.time_for_item(1), None)
def active_work_items(self): return ActiveWorkItems.lookup_by_queue(self._name)
def _get_patches_waiting(cls, queue_name): work_items = WorkItems.lookup_by_queue(queue_name) active_work_items = ActiveWorkItems.lookup_by_queue(queue_name) return len(set(work_items.item_ids) - set(active_work_items.item_ids))