Пример #1
0
 def test_group_transmissions_default_batch_size(self):
     """Default max batch size is 200"""
     self.create_many_transmissions(201)
     router = DatabaseRouter()
     result = list(router.group_transmissions(Transmission.objects.all()))
     self.assertEqual(2, len(result))  # 2 batches
     self.assertEqual(200, len(result[0][1]))  # first batch has 200
Пример #2
0
 def test_group_transmissions_custom_default_batch_size(self):
     """Default max batch size can be configured in settings"""
     self.create_many_transmissions(3)
     router = DatabaseRouter()
     with self.settings(DB_ROUTER_DEFAULT_BATCH_SIZE=2):
         transmissions = Transmission.objects.all()
         result = list(router.group_transmissions(transmissions))
     self.assertEqual(2, len(result))  # 2 batches
     self.assertEqual(2, len(result[0][1]))  # first batch has 2
Пример #3
0
 def test_group_transmissions(self):
     """Transmissions should be grouped by batch_size."""
     # create 2 batches (queued, queued)
     backend, dbm, t1, t2 = self.create_trans(s1="Q", s2="Q")
     router = DatabaseRouter()
     trans = list(router.group_transmissions(Transmission.objects.all(), batch_size=2))
     _, batch1 = trans[0]
     _, batch2 = trans[1]
     self.assertEqual(list(batch1.values_list("id", flat=True)), list(t1.values_list("id", flat=True)))
     self.assertEqual(list(batch2.values_list("id", flat=True)), list(t2.values_list("id", flat=True)))
Пример #4
0
 def test_group_transmissions(self):
     """Transmissions should be grouped by batch_size."""
     # create 2 batches (queued, queued)
     backend, dbm, t1, t2 = self.create_trans(s1='Q', s2='Q')
     router = DatabaseRouter()
     trans = list(router.group_transmissions(Transmission.objects.all(),
                                             batch_size=2))
     _, batch1 = trans[0]
     _, batch2 = trans[1]
     self.assertEqual(list(batch1.values_list('id', flat=True)),
                      list(t1.values_list('id', flat=True)))
     self.assertEqual(list(batch2.values_list('id', flat=True)),
                      list(t2.values_list('id', flat=True)))
Пример #5
0
 def test_group_transmissions_different_backends(self):
     """Test grouping works across transmissions with different backends."""
     other_backend = self.create_backend(data={"name": "other_backend"})
     self.create_many_transmissions(7)
     self.create_many_transmissions(6, backend=other_backend)
     router = DatabaseRouter()
     result = list(router.group_transmissions(Transmission.objects.all(), batch_size=4))
     # 4 total batches
     self.assertEqual(4, len(result))
     # first two batches should be lenth 4 and 3 (=7)
     self.assertEqual(4, len(result[0][1]))
     self.assertEqual(3, len(result[1][1]))
     # second two batches should be lenth 4 and 2 (=6)
     self.assertEqual(4, len(result[2][1]))
     self.assertEqual(2, len(result[3][1]))
Пример #6
0
 def test_group_transmissions_different_backends(self):
     """Test grouping works across transmissions with different backends."""
     other_backend = self.create_backend(data={'name': 'other_backend'})
     self.create_many_transmissions(7)
     self.create_many_transmissions(6, backend=other_backend)
     router = DatabaseRouter()
     result = list(router.group_transmissions(Transmission.objects.all(),
                                              batch_size=4))
     # 4 total batches
     self.assertEqual(4, len(result))
     # first two batches should be lenth 4 and 3 (=7)
     self.assertEqual(4, len(result[0][1]))
     self.assertEqual(3, len(result[1][1]))
     # second two batches should be lenth 4 and 2 (=6)
     self.assertEqual(4, len(result[2][1]))
     self.assertEqual(2, len(result[3][1]))