~ubuntu-branches/ubuntu/quantal/python-django/quantal-security

« back to all changes in this revision

Viewing changes to tests/regressiontests/defer_regress/models.py

  • Committer: Bazaar Package Importer
  • Author(s): Chris Lamb
  • Date: 2010-05-21 07:52:55 UTC
  • mfrom: (1.3.6 upstream)
  • mto: This revision was merged to the branch mainline in revision 28.
  • Revision ID: james.westby@ubuntu.com-20100521075255-ii78v1dyfmyu3uzx
Tags: upstream-1.2
ImportĀ upstreamĀ versionĀ 1.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
    def __unicode__(self):
32
32
        return self.name
33
33
 
 
34
class ResolveThis(models.Model):
 
35
    num = models.FloatField()
 
36
    name = models.CharField(max_length=16)
 
37
 
34
38
__test__ = {"regression_tests": """
35
39
Deferred fields should really be deferred and not accidentally use the field's
36
40
default value just because they aren't passed to __init__.
115
119
>>> results[0].second_child.name
116
120
u'c2'
117
121
 
118
 
# Finally, we need to flush the app cache for the defer module.
119
 
# Using only/defer creates some artifical entries in the app cache
120
 
# that messes up later tests. Purge all entries, just to be sure.
121
 
>>> from django.db.models.loading import cache
122
 
>>> cache.app_models['defer_regress'] = {}
123
 
 
 
122
# Test for #12163 - Pickling error saving session with unsaved model instances.
 
123
>>> from django.contrib.sessions.backends.db import SessionStore
 
124
>>> SESSION_KEY = '2b1189a188b44ad18c35e1baac6ceead'
 
125
>>> item = Item()
 
126
>>> item._deferred
 
127
False
 
128
>>> s = SessionStore(SESSION_KEY)
 
129
>>> s.clear()
 
130
>>> s['item'] = item
 
131
>>> s.save()
 
132
>>> s = SessionStore(SESSION_KEY)
 
133
>>> s.modified = True
 
134
>>> s.save()
 
135
>>> i2 = s['item']
 
136
>>> i2._deferred # Item must still be non-deferred
 
137
False
 
138
 
 
139
# Regression for #11936 - loading.get_models should not return deferred models by default.
 
140
>>> from django.db.models.loading import get_models
 
141
>>> sorted(get_models(models.get_app('defer_regress')), key=lambda obj: obj._meta.object_name)
 
142
[<class 'regressiontests.defer_regress.models.Child'>, <class 'regressiontests.defer_regress.models.Item'>, <class 'regressiontests.defer_regress.models.Leaf'>, <class 'regressiontests.defer_regress.models.RelatedItem'>, <class 'regressiontests.defer_regress.models.ResolveThis'>]
 
143
 
 
144
>>> sorted(get_models(models.get_app('defer_regress'), include_deferred=True), key=lambda obj: obj._meta.object_name)
 
145
[<class 'regressiontests.defer_regress.models.Child'>, <class 'regressiontests.defer_regress.models.Child_Deferred_value'>, <class 'regressiontests.defer_regress.models.Item'>, <class 'regressiontests.defer_regress.models.Item_Deferred_name'>, <class 'regressiontests.defer_regress.models.Item_Deferred_name_other_value_text'>, <class 'regressiontests.defer_regress.models.Item_Deferred_name_other_value_value'>, <class 'regressiontests.defer_regress.models.Item_Deferred_other_value_text_value'>, <class 'regressiontests.defer_regress.models.Item_Deferred_text_value'>, <class 'regressiontests.defer_regress.models.Leaf'>, <class 'regressiontests.defer_regress.models.Leaf_Deferred_child_id_second_child_id_value'>, <class 'regressiontests.defer_regress.models.Leaf_Deferred_name_value'>, <class 'regressiontests.defer_regress.models.Leaf_Deferred_second_child_value'>, <class 'regressiontests.defer_regress.models.Leaf_Deferred_value'>, <class 'regressiontests.defer_regress.models.RelatedItem'>, <class 'regressiontests.defer_regress.models.RelatedItem_Deferred_'>, <class 'regressiontests.defer_regress.models.RelatedItem_Deferred_item_id'>, <class 'regressiontests.defer_regress.models.ResolveThis'>, <class 'regressiontests.defer_regress.models.ResolveThis_Deferred_num'>]
124
146
"""
125
147
}
 
148