How to proper test signals.py in Django?

Viewed 334

I want to know that is my signal test was correct ? the test coverage with "django-nose" of signals.py still 0%

This is my signals.py

@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
    if created:
        Profile.objects.create(user=instance)


@receiver(post_save, sender=User)
def save_profile(sender, instance, **kwargs):
    instance.profile.save()

This is my test.py

class TestSignals(TestCase):
    def test_create_profile_signal_triggered(self):
        handler = MagicMock()
        signals.create_profile.send(handler, sender='test')
        
        form = UserCreationForm()
        form.cleaned_data={'username':'oatty111','email':'oatty@mail.com','password1':'test123',
        'password2':'test123','first_name':'Michael','last_name':'Jordan'}
        form.save()
        signals.create_profile.send(sender='test',form_date=form)

        handler.assert_called_once_with(signal=signals.create_profile, form_data=form, sender='test')

This is my forms.py

class UserRegisterForm(UserCreationForm):
    email = forms.EmailField()

    class Meta:
        model = User
        fields = ['username','email','password1','password2','first_name','last_name']
0 Answers
Related