Test bulk insert and update operations
(self)
| 308 | session.close() |
| 309 | |
| 310 | def test_bulk_operations(self): |
| 311 | """Test bulk insert and update operations""" |
| 312 | session = self.Session() |
| 313 | try: |
| 314 | # Bulk insert |
| 315 | users = [ |
| 316 | User(username=f"bulk{i}", email=f"bulk{i}@example.com", age=20+i) |
| 317 | for i in range(100) |
| 318 | ] |
| 319 | session.bulk_save_objects(users) |
| 320 | session.commit() |
| 321 | |
| 322 | count = session.query(User).filter(User.username.like("bulk%")).count() |
| 323 | assert count == 100 |
| 324 | |
| 325 | # Bulk update |
| 326 | session.query(User).filter(User.username.like("bulk%")).update( |
| 327 | {User.is_active: False}, |
| 328 | synchronize_session=False |
| 329 | ) |
| 330 | session.commit() |
| 331 | |
| 332 | inactive_count = session.query(User).filter( |
| 333 | and_(User.username.like("bulk%"), User.is_active == False) |
| 334 | ).count() |
| 335 | assert inactive_count == 100 |
| 336 | |
| 337 | # Bulk delete |
| 338 | session.query(User).filter(User.username.like("bulk%")).delete( |
| 339 | synchronize_session=False |
| 340 | ) |
| 341 | session.commit() |
| 342 | |
| 343 | remaining = session.query(User).filter(User.username.like("bulk%")).count() |
| 344 | assert remaining == 0 |
| 345 | |
| 346 | finally: |
| 347 | session.close() |
| 348 | |
| 349 | def test_datetime_operations(self): |
| 350 | """Test datetime handling""" |