From 6ec45f3cb487d5faf50240072bf1440ff336b506 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Wed, 11 Nov 2009 13:08:33 +0000 Subject: [1.1.X] Fixed #12163 -- Corrected the unpickling of non-deferred models. Thanks to rfugger for the report and test case. Backport of r11732 from trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@11733 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- tests/regressiontests/defer_regress/models.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'tests') diff --git a/tests/regressiontests/defer_regress/models.py b/tests/regressiontests/defer_regress/models.py index da9822ab88..a1cd19788d 100644 --- a/tests/regressiontests/defer_regress/models.py +++ b/tests/regressiontests/defer_regress/models.py @@ -115,6 +115,23 @@ u'c1' >>> results[0].second_child.name u'c2' +# Test for #12163 - Pickling error saving session with unsaved model instances. +>>> from django.contrib.sessions.backends.db import SessionStore +>>> SESSION_KEY = '2b1189a188b44ad18c35e1baac6ceead' +>>> item = Item() +>>> item._deferred +False +>>> s = SessionStore(SESSION_KEY) +>>> s.clear() +>>> s['item'] = item +>>> s.save() +>>> s = SessionStore(SESSION_KEY) +>>> s.modified = True +>>> s.save() +>>> i2 = s['item'] +>>> i2._deferred # Item must still be non-deferred +False + # Finally, we need to flush the app cache for the defer module. # Using only/defer creates some artifical entries in the app cache # that messes up later tests. Purge all entries, just to be sure. -- cgit v1.3