This behavior is really quite bizarre and I've spent a tremendous
amount of time trying to figure it out.

Here is the code to demonstrate the problem: In one of my models.py
files, I have this:

COUNT = 0

def user_pre_save(sender, instance, signal, *args, **kwargs):
        global COUNT
        r = random.randint(1,50)
        print 'pre_save: count: %s random: %s' %(COUNT, r)
        COUNT +=1


dispatcher.connect(user_pre_save, signal=signals.pre_save,
sender=User)

I have a simple doctest:
        >>> u=User.objects.create_user('test2','[EMAIL PROTECTED]')
        >>> u.email='new'
        >>> u.save()

I load one user via the initial data fixtures.

Here is the output I get:

Installing json fixture 'initial_data' from 'c:\django\bv\..\bv\alerts
\fixtures'
.
pre_save: count: 0 random: 49
pre_save: count: 0 random: 23
...
Failed example:
    u=User.objects.create_user('test2','[EMAIL PROTECTED]')
Expected nothing
Got:
    pre_save: count: 1 random: 13
    pre_save: count: 1 random: 2
...

Failed example:
    u.save()
Expected nothing
Got:
    pre_save: count: 2 random: 18
    pre_save: count: 2 random: 49


If I take the same example and execute it in the shell, it behaves as
expected.

Thoughts, suggestions?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to