diff options
Diffstat (limited to 'tests/queryset_pickle/tests.py')
| -rw-r--r-- | tests/queryset_pickle/tests.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/queryset_pickle/tests.py b/tests/queryset_pickle/tests.py index acdb582a0a..074a8ed550 100644 --- a/tests/queryset_pickle/tests.py +++ b/tests/queryset_pickle/tests.py @@ -351,6 +351,29 @@ class PickleabilityTestCase(TestCase): event.edition_set.create() self.assert_pickles(event.edition_set.order_by("event")) + def test_fetch_mode_fetch_one(self): + restored = pickle.loads(pickle.dumps(self.happening)) + self.assertIs(restored._state.fetch_mode, models.FETCH_ONE) + + def test_fetch_mode_fetch_peers(self): + Happening.objects.create() + objs = list(Happening.objects.fetch_mode(models.FETCH_PEERS)) + self.assertEqual(objs[0]._state.fetch_mode, models.FETCH_PEERS) + self.assertEqual(len(objs[0]._state.peers), 2) + + restored = pickle.loads(pickle.dumps(objs)) + + self.assertIs(restored[0]._state.fetch_mode, models.FETCH_PEERS) + # Peers not restored because weak references are not picklable. + self.assertEqual(restored[0]._state.peers, ()) + + def test_fetch_mode_raise(self): + objs = list(Happening.objects.fetch_mode(models.RAISE)) + self.assertEqual(objs[0]._state.fetch_mode, models.RAISE) + + restored = pickle.loads(pickle.dumps(objs)) + self.assertIs(restored[0]._state.fetch_mode, models.RAISE) + class InLookupTests(TestCase): @classmethod |
