def test_sending_alerts_dedupe(self):
        """
        One question by joe, two responses by admin: bob responds.
        """
        ######## SETUP
        self.assertTrue(settings.ALERTS)

        RESPONSE_POST = {
            'body': 'This is the response body friend!',
            'status': 'inherit',
            'alert': settings.ALERTS,
        }

        # another admin response
        response = ResponseForm(self.admin, self.question, RESPONSE_POST).save()

        mail.outbox = [] # reset
        self.assertEqual(len(mail.outbox), 0)
        ######## TEARDOWN

        RESPONSE_POST = {
            'body': 'This is the response body friend!',
            'alert': settings.ALERTS,
        }

        # question is by joe, first response is by admin
        form = ResponseForm(self.bob, self.question, RESPONSE_POST)
        self.assertTrue(form.is_valid())
        response = form.save()

        self.assertTrue(response.alert)
        self.assertEqual(len(mail.outbox), 2) # one for joe, one for admin
    def test_sending_alerts_dedupe(self):
        """
        One question by joe, two responses by admin: bob responds.
        """
        ######## SETUP
        self.assertTrue(settings.ALERTS)

        RESPONSE_POST = {
            'body': 'This is the response body friend!',
            'status': 'inherit',
            'alert': settings.ALERTS,
        }

        # another admin response
        response = ResponseForm(self.admin, self.question, RESPONSE_POST).save()

        mail.outbox = [] # reset
        self.assertEqual(len(mail.outbox), 0)
        ######## TEARDOWN

        RESPONSE_POST = {
            'body': 'This is the response body friend!',
            'alert': settings.ALERTS,
        }

        # question is by joe, first response is by admin
        form = ResponseForm(self.bob, self.question, RESPONSE_POST)
        self.assertTrue(form.is_valid())
        response = form.save()

        self.assertTrue(response.alert)
        self.assertEqual(len(mail.outbox), 2) # one for joe, one for admin
Exemple #3
0
def knowledge_thread(request,
                     question_id,
                     slug=None,
                     template='django_knowledge/thread.html'):

    if settings.LOGIN_REQUIRED and not request.user.is_authenticated():
        return HttpResponseRedirect(settings.LOGIN_URL +
                                    "?next=%s" % request.path)

    try:
        question = Question.objects.can_view(request.user)\
                                   .get(id=question_id)
    except Question.DoesNotExist:
        if Question.objects.filter(id=question_id).exists() and \
                                hasattr(settings, 'LOGIN_REDIRECT_URL'):
            return redirect(settings.LOGIN_REDIRECT_URL)
        else:
            raise Http404

    responses = question.get_responses(request.user)

    if request.path != question.get_absolute_url():
        return redirect(question.get_absolute_url(), permanent=True)

    form = ResponseForm(request.user, question, request.POST or None)
    if request.method == 'POST' and form.is_valid():
        if request.user.is_authenticated(
        ) or not form.cleaned_data['phone_number']:
            form.save()
        return redirect(question.get_absolute_url())

    return render(
        request, template, {
            'request': request,
            'question': question,
            'responses': responses,
            'allowed_mods': ALLOWED_MODS,
            'form': form,
            'categories': Category.objects.all(),
            'BASE_TEMPLATE': settings.BASE_TEMPLATE,
        })
    def test_sending_alerts_normal(self):
        """
        One question by joe, one response by admin: bob responds.
        """
        self.assertTrue(settings.ALERTS)
        
        self.assertEqual(len(mail.outbox), 0)

        RESPONSE_POST = {
            'body': 'This is the response body friend!',
            'alert': settings.ALERTS,
        }

        # question is by joe, first response is by admin
        form = ResponseForm(self.bob, self.question, RESPONSE_POST)
        self.assertTrue(form.is_valid())
        response = form.save()

        self.assertTrue(response.alert)
        self.assertEqual(len(mail.outbox), 2) # one for joe, one for admin
    def test_sending_alerts_normal(self):
        """
        One question by joe, one response by admin: bob responds.
        """
        self.assertTrue(settings.ALERTS)
        
        self.assertEqual(len(mail.outbox), 0)

        RESPONSE_POST = {
            'body': 'This is the response body friend!',
            'alert': settings.ALERTS,
        }

        # question is by joe, first response is by admin
        form = ResponseForm(self.bob, self.question, RESPONSE_POST)
        self.assertTrue(form.is_valid())
        response = form.save()

        self.assertTrue(response.alert)
        self.assertEqual(len(mail.outbox), 2) # one for joe, one for admin