def testReAppend(self): worklist = _ZenHubWorklist() for i in range(10): worklist.push(MockHubWorklistItem(method='test', value=i)) popped = [] for i in range(5): popped.append(worklist.pop()) for item in popped: worklist.push(item) self.assertEqual([i.value for i in self._popSorted(worklist.otherworklist)], range(10)) worklist = _ZenHubWorklist() for i in range(10): worklist.push(MockHubWorklistItem(method='sendEvents', value=i)) for i in range(5): popped.append(worklist.pop()) for item in popped: worklist.push(item) self.assertEqual([i.value for i in self._popSorted(worklist.eventworklist)], range(10)) worklist = _ZenHubWorklist() for i in range(10): worklist.push(MockHubWorklistItem(method='applyDataMaps', value=i)) for i in range(5): popped.append(worklist.pop()) for item in popped: worklist.push(item) self.assertEqual([i.value for i in self._popSorted(worklist.applyworklist)], range(10))
def testPopNoADM(self): # test that applyworklist items don't get popped when allowADM=False worklist = _ZenHubWorklist() for i in range(10): worklist.push(MockHubWorklistItem(method='test', value=i)) for i in range(10,20): worklist.push(MockHubWorklistItem(method='sendEvents', value=i)) for i in range(20,30): worklist.push(MockHubWorklistItem(method='applyDataMaps', value=i)) for i in range(20): job = worklist.pop(False) self.assertIsNotNone(job) self.assertIsInstance(job, MockHubWorklistItem) self.assertTrue(job.method != 'applyDataMaps', "Got an applyDataMaps job!") self.assertTrue(0 <= job.value < 20) self.assertEqual(len(worklist.applyworklist), 10) self.assertEqual(len(worklist), 10) # Another pop with allowADM=False should return None job = worklist.pop(False) self.assertIsNone(job) for i in range(10): job = worklist.pop(True) self.assertIsNotNone(job) self.assertIsInstance(job, MockHubWorklistItem) self.assertTrue(job.method == 'applyDataMaps', "job.method was %s, expected 'applyDataMaps'" % job.method) self.assertTrue(20 <= job.value < 30) self.assertEqual(len(worklist.eventworklist), 0) self.assertEqual(len(worklist.otherworklist), 0) self.assertEqual(len(worklist.applyworklist), 0) self.assertEqual(len(worklist), 0)
def testGetItem(self): worklist = _ZenHubWorklist() self.assertEqual(worklist.otherworklist, worklist['test']) self.assertEqual(worklist.otherworklist, worklist['']) self.assertEqual(worklist.otherworklist, worklist[None]) self.assertEqual(worklist.otherworklist, worklist[47]) self.assertEqual(worklist.otherworklist, worklist[False]) self.assertEqual(worklist.eventworklist, worklist['sendEvents']) self.assertEqual(worklist.applyworklist, worklist['applyDataMaps'])
def testPopOtherOnly(self): worklist = _ZenHubWorklist() for i in range(10): worklist.push(MockHubWorklistItem(method='test', value=i)) while worklist: job = worklist.pop() self.assertIsNotNone(job) self.assertIsInstance(job, MockHubWorklistItem) self.assertTrue(0 <= job.value < 10) self.assertEqual(len(worklist.otherworklist), 0) self.assertEqual(len(worklist), 0)
def testPopEventsOnly(self): worklist = _ZenHubWorklist() for i in range(10,20): worklist.push(MockHubWorklistItem(method='sendEvents', value=i)) while worklist: job = worklist.pop() self.assertIsNotNone(job) self.assertIsInstance(job, MockHubWorklistItem) self.assertTrue(10 <= job.value < 20) self.assertEqual(len(worklist.eventworklist), 0) self.assertEqual(len(worklist), 0)
def testPopApplyOnly(self): worklist = _ZenHubWorklist() for i in range(20,30): worklist.push(MockHubWorklistItem(method='applyDataMaps', value=i)) while worklist: job = worklist.pop() self.assertIsNotNone(job) self.assertIsInstance(job, MockHubWorklistItem) self.assertTrue(20 <= job.value < 30) self.assertEqual(len(worklist.applyworklist), 0) self.assertEqual(len(worklist), 0)
def testAppend(self): worklist = _ZenHubWorklist() for i in range(10): worklist.append(MockHubWorklistItem(method='test', value=i)) for i in range(10,20): worklist.append(MockHubWorklistItem(method='sendEvents', value=i)) for i in range(20,30): worklist.append(MockHubWorklistItem(method='applyDataMaps', value=i)) self.assertEqual([i.value for i in self._popSorted(worklist.otherworklist)], range(10)) self.assertEqual([i.value for i in self._popSorted(worklist.eventworklist)], range(10, 20)) self.assertEqual([i.value for i in self._popSorted(worklist.applyworklist)], range(20, 30))
def testAppend(self): worklist = _ZenHubWorklist() for i in range(10): worklist.append(MockHubWorklistItem('test', i)) for i in range(10, 20): worklist.append(MockHubWorklistItem('sendEvents', i)) for i in range(20, 30): worklist.append(MockHubWorklistItem('applyDataMaps', i)) self.assertEqual([i.value for i in worklist.otherworklist], range(10)) self.assertEqual([i.value for i in worklist.eventworklist], range(10, 20)) self.assertEqual([i.value for i in worklist.applyworklist], range(20, 30))
def testLen(self): worklist = _ZenHubWorklist() self.assertEqual(len(worklist), 0) for i in range(10): worklist.append(MockHubWorklistItem(method='test', value=i)) self.assertEqual(len(worklist), 10) for i in range(10,20): worklist.append(MockHubWorklistItem(method='sendEvents', value=i)) self.assertEqual(len(worklist), 20) for i in range(20,30): worklist.append(MockHubWorklistItem(method='applyDataMaps', value=i)) self.assertEqual(len(worklist), 30)
def testPopAll(self): worklist = _ZenHubWorklist() for i in range(10): worklist.push(MockHubWorklistItem(method='test', value=i)) for i in range(10,20): worklist.push(MockHubWorklistItem(method='sendEvents', value=i)) for i in range(20,30): worklist.push(MockHubWorklistItem(method='applyDataMaps', value=i)) while worklist: job = worklist.pop() self.assertIsInstance(job, MockHubWorklistItem) self.assertTrue(0 <= job.value < 30) self.assertEqual(len(worklist.eventworklist), 0) self.assertEqual(len(worklist.otherworklist), 0) self.assertEqual(len(worklist.applyworklist), 0) self.assertEqual(len(worklist), 0)
def testDispatch(self): worklist = _ZenHubWorklist() self.assertEqual(len(worklist.otherworklist), 0) self.assertEqual(len(worklist.eventworklist), 0) self.assertEqual(len(worklist.applyworklist), 0) for i in range(10): worklist.append(MockHubWorklistItem('test', i)) self.assertEqual(len(worklist.otherworklist), 10) self.assertEqual(len(worklist.eventworklist), 0) self.assertEqual(len(worklist.applyworklist), 0) for i in range(10, 20): worklist.append(MockHubWorklistItem('sendEvents', i)) self.assertEqual(len(worklist.otherworklist), 10) self.assertEqual(len(worklist.eventworklist), 10) self.assertEqual(len(worklist.applyworklist), 0) for i in range(20, 30): worklist.append(MockHubWorklistItem('applyDataMaps', i)) self.assertEqual(len(worklist.otherworklist), 10) self.assertEqual(len(worklist.eventworklist), 10) self.assertEqual(len(worklist.applyworklist), 10)