Add a bulk insert for queue and notifications.

Use it for Clair spawned notifications.
This commit is contained in:
Jake Moshenko 2016-12-05 23:58:20 -05:00
parent eb363876cd
commit 21e3001446
4 changed files with 110 additions and 36 deletions

View file

@ -67,8 +67,9 @@ class TestQueue(QueueTestCase):
self.assertEqual(self.reporter.running_count, None)
self.assertEqual(self.reporter.total, None)
self.queue.put(['abc', 'def'], self.TEST_MESSAGE_1, available_after=-1)
self.queue.put(['abc', 'def'], self.TEST_MESSAGE_2, available_after=-1)
id_1 = int(self.queue.put(['abc', 'def'], self.TEST_MESSAGE_1, available_after=-1))
id_2 = int(self.queue.put(['abc', 'def'], self.TEST_MESSAGE_2, available_after=-1))
self.assertEqual(id_1 + 1, id_2)
self.assertEqual(self.reporter.currently_processing, False)
self.assertEqual(self.reporter.running_count, 0)
self.assertEqual(self.reporter.total, 1)
@ -202,6 +203,28 @@ class TestQueue(QueueTestCase):
msg = str(json_body['data'])
self.assertIn(msg, seen)
def test_bulk_insert(self):
self.assertEqual(self.reporter.currently_processing, None)
self.assertEqual(self.reporter.running_count, None)
self.assertEqual(self.reporter.total, None)
with self.queue.batch_insert() as queue_put:
queue_put(['abc', 'def'], self.TEST_MESSAGE_1, available_after=-1)
queue_put(['abc', 'def'], self.TEST_MESSAGE_2, available_after=-1)
self.queue.update_metrics()
self.assertEqual(self.reporter.currently_processing, False)
self.assertEqual(self.reporter.running_count, 0)
self.assertEqual(self.reporter.total, 1)
with self.queue.batch_insert() as queue_put:
queue_put(['abd', 'def'], self.TEST_MESSAGE_1, available_after=-1)
queue_put(['abd', 'ghi'], self.TEST_MESSAGE_2, available_after=-1)
self.queue.update_metrics()
self.assertEqual(self.reporter.currently_processing, False)
self.assertEqual(self.reporter.running_count, 0)
self.assertEqual(self.reporter.total, 3)
if __name__ == '__main__':
unittest.main()