(cls)
| 1417 | |
| 1418 | @classmethod |
| 1419 | def setUpClass(cls): |
| 1420 | super().setUpClass() |
| 1421 | if not ( |
| 1422 | cls._databases_support_transactions() |
| 1423 | and cls._databases_support_savepoints() |
| 1424 | ): |
| 1425 | return |
| 1426 | cls.cls_atomics = cls._enter_atomics() |
| 1427 | |
| 1428 | if cls.fixtures: |
| 1429 | for db_name in cls._databases_names(include_mirrors=False): |
| 1430 | try: |
| 1431 | call_command( |
| 1432 | "loaddata", |
| 1433 | *cls.fixtures, |
| 1434 | verbosity=0, |
| 1435 | database=db_name, |
| 1436 | ) |
| 1437 | except Exception: |
| 1438 | cls._rollback_atomics(cls.cls_atomics) |
| 1439 | raise |
| 1440 | pre_attrs = cls.__dict__.copy() |
| 1441 | try: |
| 1442 | cls.setUpTestData() |
| 1443 | except Exception: |
| 1444 | cls._rollback_atomics(cls.cls_atomics) |
| 1445 | raise |
| 1446 | for name, value in cls.__dict__.items(): |
| 1447 | if value is not pre_attrs.get(name): |
| 1448 | setattr(cls, name, TestData(name, value)) |
| 1449 | |
| 1450 | @classmethod |
| 1451 | def tearDownClass(cls): |
no test coverage detected