Пример #1
0
 async def test_bulk_create_in_transaction_fail(self):
     with self.assertRaises(IntegrityError):
         async with in_transaction():
             await UniqueName.bulk_create(
                 [UniqueName(name=str(i)) for i in range(10)]
                 + [UniqueName(name=str(i)) for i in range(10)]
             )
Пример #2
0
 async def test_bulk_create_ignore_conflicts(self):
     name1 = UniqueName(name="name1")
     name2 = UniqueName(name="name2")
     await UniqueName.bulk_create([name1, name2])
     await UniqueName.bulk_create([name1, name2], ignore_conflicts=True)
     with self.assertRaises(IntegrityError):
         await UniqueName.bulk_create([name1, name2])
Пример #3
0
 async def test_bulk_create_update_fields(self):
     await UniqueName.bulk_create([UniqueName(name="name")])
     await UniqueName.bulk_create(
         [UniqueName(name="name", optional="optional")],
         update_fields=["optional"],
         on_conflict=["name"],
     )
     all_ = await UniqueName.all().values("name", "optional")
     self.assertListSortEqual(all_, [{"name": "name", "optional": "optional"}])
Пример #4
0
    async def test_bulk_create_mix_specified(self):
        await UniqueName.bulk_create(
            [UniqueName(id=id_) for id_ in range(10000, 11000)]
            + [UniqueName() for _ in range(1000)]
        )

        all_ = await UniqueName.all().values("id", "name")
        self.assertEqual(len(all_), 2000)

        self.assertListSortEqual(
            all_[:1000], [{"id": id_, "name": None} for id_ in range(10000, 11000)]
        )
        inc = all_[1000]["id"]
        self.assertListSortEqual(
            all_[1000:], [{"id": val + inc, "name": None} for val in range(1000)]
        )
Пример #5
0
 async def test_concurrent_get_or_create(self):
     unas = await asyncio.gather(
         *[UniqueName.get_or_create(name="b") for _ in range(10)])
     una_created = [una[1] for una in unas if una[1] is True]
     self.assertEqual(len(una_created), 1)
     for una in unas:
         self.assertEqual(una[0], unas[0][0])
Пример #6
0
 async def test_bulk_create(self):
     await UniqueName.bulk_create([UniqueName() for _ in range(1000)])
     all_ = await UniqueName.all().values("id", "name")
     inc = all_[0]["id"]
     self.assertEqual(all_, [{
         "id": val + inc,
         "name": None
     } for val in range(1000)])
Пример #7
0
 async def test_bulk_create_with_specified(self):
     await UniqueName.bulk_create(
         [UniqueName(id=id_) for id_ in range(1000, 2000)])
     all_ = await UniqueName.all().values("id", "name")
     self.assertEqual(all_, [{
         "id": id_,
         "name": None
     } for id_ in range(1000, 2000)])
Пример #8
0
 async def test_bulk_create_with_batch_size(self):
     await UniqueName.bulk_create(
         [UniqueName(id=id_ + 1) for id_ in range(1000)], batch_size=100)
     all_ = await UniqueName.all().values("id", "name")
     self.assertListSortEqual(all_, [{
         "id": val + 1,
         "name": None
     } for val in range(1000)],
                              sorted_key="id")