|
18 | 18 | AbstractBase, ConcreteAttr, ConcreteUtil, SelfFK, Temperature, WaterLevel,
|
19 | 19 | ExternalModel1, ExternalModel3, UnicodeVerboseName, HistoricalChoice,
|
20 | 20 | HistoricalState, HistoricalCustomFKError, Series, SeriesWork, PollInfo,
|
21 |
| - UserAccessorDefault, UserAccessorOverride |
| 21 | + UserAccessorDefault, UserAccessorOverride, Employee |
22 | 22 | )
|
23 | 23 | from ..external.models import ExternalModel2, ExternalModel4
|
24 | 24 |
|
@@ -706,3 +706,26 @@ def test_accessor_default(self):
|
706 | 706 | def test_accessor_override(self):
|
707 | 707 | register(UserAccessorOverride, user_related_name='my_history_model_accessor')
|
708 | 708 | assert hasattr(User, 'my_history_model_accessor')
|
| 709 | + |
| 710 | + |
| 711 | +class TestMissingOneToOne(TestCase): |
| 712 | + |
| 713 | + def setUp(self): |
| 714 | + self.manager1 = Employee.objects.create() |
| 715 | + self.manager2 = Employee.objects.create() |
| 716 | + self.employee = Employee.objects.create(manager=self.manager1) |
| 717 | + self.employee.manager = self.manager2 |
| 718 | + self.employee.save() |
| 719 | + self.manager1.delete() |
| 720 | + |
| 721 | + def test_history_is_complete(self): |
| 722 | + historical_manager_ids = list(self.employee.history.order_by('pk') |
| 723 | + .values_list('manager_id', flat=True)) |
| 724 | + self.assertEqual(historical_manager_ids, [1, 2]) |
| 725 | + |
| 726 | + def test_restore_employee(self): |
| 727 | + historical = self.employee.history.order_by('pk')[0] |
| 728 | + original = historical.instance |
| 729 | + self.assertEqual(original.manager_id, 1) |
| 730 | + with self.assertRaises(Employee.DoesNotExist): |
| 731 | + original.manager |
0 commit comments