summaryrefslogtreecommitdiff
path: root/tests/regressiontests
diff options
context:
space:
mode:
authorRussell Keith-Magee <russell@keith-magee.com>2009-11-11 13:08:33 +0000
committerRussell Keith-Magee <russell@keith-magee.com>2009-11-11 13:08:33 +0000
commit6ec45f3cb487d5faf50240072bf1440ff336b506 (patch)
treed355069346cb41ef04be416281ef21e826308778 /tests/regressiontests
parentabd4344efe6bc9b138595a7d15998a0cbce5b9cf (diff)
[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
Diffstat (limited to 'tests/regressiontests')
-rw-r--r--tests/regressiontests/defer_regress/models.py17
1 files changed, 17 insertions, 0 deletions
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.