def test_email_not_sent_when_watcher_removed(self, notifications): dispatch_uid = "publicweb.models.decision_signal_handler" Signal.disconnect(signals.post_save, sender=Decision, dispatch_uid=dispatch_uid) decision = self.create_and_return_decision() data = { 'description': decision.description, 'status': decision.status, 'deadline': decision.deadline, 'people': decision.people, 'watch': True } form = DecisionForm(data, instance=decision) form.watch = False form.is_valid() form.save() Signal.connect( signals.post_save, sender=Decision, receiver=decision_signal_handler, dispatch_uid=dispatch_uid ) self.assertFalse(notifications.called)
def _process_post_and_redirect(request, decision, template_name): if request.POST.get('submit', None) == "Cancel": return HttpResponseRedirect(reverse(object_list_by_status, args=[decision.status])) else: form = DecisionForm(request.POST, instance=decision) if form.is_valid(): decision = form.save() if form.cleaned_data['watch']: decision.add_watcher(request.user) else: decision.remove_watcher(request.user) return HttpResponseRedirect(reverse(object_list_by_status, args=[decision.status])) data = dict(form=form) context = RequestContext(request, data) return render_to_response(template_name, context)