summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGary Wilson Jr <gary.wilson@gmail.com>2008-02-01 17:32:29 +0000
committerGary Wilson Jr <gary.wilson@gmail.com>2008-02-01 17:32:29 +0000
commitcc7c6f3e46777c8d57a857eefb40a58c31556fc6 (patch)
treeb20eb1104ad58d76e8e342c87a2e6c9b5fbeadcf /tests
parent0e81ad4e668a160e4782da0c41f229ec88288550 (diff)
Fixed #5422 -- Added a `raw` parameter to model `pre_save` and `post_save` signals, based on patch from `graham.carlyle@maplecroft.net`.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7054 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
-rw-r--r--tests/modeltests/signals/models.py35
1 files changed, 33 insertions, 2 deletions
diff --git a/tests/modeltests/signals/models.py b/tests/modeltests/signals/models.py
index 1fb73828bb..5b0f5f2285 100644
--- a/tests/modeltests/signals/models.py
+++ b/tests/modeltests/signals/models.py
@@ -13,8 +13,16 @@ class Person(models.Model):
return u"%s %s" % (self.first_name, self.last_name)
+def pre_save_nokwargs_test(sender, instance):
+ print 'pre_save_nokwargs signal'
+
+def post_save_nokwargs_test(sender, instance):
+ print 'post_save_nokwargs signal'
+
def pre_save_test(sender, instance, **kwargs):
print 'pre_save signal,', instance
+ if kwargs.get('raw'):
+ print 'Is raw'
def post_save_test(sender, instance, **kwargs):
print 'post_save signal,', instance
@@ -23,16 +31,20 @@ def post_save_test(sender, instance, **kwargs):
print 'Is created'
else:
print 'Is updated'
+ if kwargs.get('raw'):
+ print 'Is raw'
def pre_delete_test(sender, instance, **kwargs):
print 'pre_delete signal,', instance
- print 'instance.id is not None: %s' % (instance.id != None)
+ print 'instance.id is not None: %s' % (instance.id != None)
def post_delete_test(sender, instance, **kwargs):
print 'post_delete signal,', instance
- print 'instance.id is None: %s' % (instance.id == None)
+ print 'instance.id is None: %s' % (instance.id == None)
__test__ = {'API_TESTS':"""
+>>> dispatcher.connect(pre_save_nokwargs_test, signal=models.signals.pre_save)
+>>> dispatcher.connect(post_save_nokwargs_test, signal=models.signals.post_save)
>>> dispatcher.connect(pre_save_test, signal=models.signals.pre_save)
>>> dispatcher.connect(post_save_test, signal=models.signals.post_save)
>>> dispatcher.connect(pre_delete_test, signal=models.signals.pre_delete)
@@ -40,15 +52,28 @@ __test__ = {'API_TESTS':"""
>>> p1 = Person(first_name='John', last_name='Smith')
>>> p1.save()
+pre_save_nokwargs signal
pre_save signal, John Smith
+post_save_nokwargs signal
post_save signal, John Smith
Is created
>>> p1.first_name = 'Tom'
>>> p1.save()
+pre_save_nokwargs signal
+pre_save signal, Tom Smith
+post_save_nokwargs signal
+post_save signal, Tom Smith
+Is updated
+
+>>> p1.save(raw=True)
+pre_save_nokwargs signal
pre_save signal, Tom Smith
+Is raw
+post_save_nokwargs signal
post_save signal, Tom Smith
Is updated
+Is raw
>>> p1.delete()
pre_delete signal, Tom Smith
@@ -59,13 +84,17 @@ instance.id is None: False
>>> p2 = Person(first_name='James', last_name='Jones')
>>> p2.id = 99999
>>> p2.save()
+pre_save_nokwargs signal
pre_save signal, James Jones
+post_save_nokwargs signal
post_save signal, James Jones
Is created
>>> p2.id = 99998
>>> p2.save()
+pre_save_nokwargs signal
pre_save signal, James Jones
+post_save_nokwargs signal
post_save signal, James Jones
Is created
@@ -78,6 +107,8 @@ instance.id is None: False
>>> Person.objects.all()
[<Person: James Jones>]
+>>> dispatcher.disconnect(pre_save_nokwargs_test, signal=models.signals.pre_save)
+>>> dispatcher.disconnect(post_save_nokwargs_test, signal=models.signals.post_save)
>>> dispatcher.disconnect(post_delete_test, signal=models.signals.post_delete)
>>> dispatcher.disconnect(pre_delete_test, signal=models.signals.pre_delete)
>>> dispatcher.disconnect(post_save_test, signal=models.signals.post_save)