예제 #1
0
    def test_mezzanine_form(self):
        page = Form.objects.create(slug='my-form')
        page.save()

        field = Field.objects.create(form=page, field_type=3, required=False)
        field.save()

        page_middleware = PageMiddleware()

        request = test.RequestFactory().post(
            '/my-form', data={'field_1': '*****@*****.**'})
        request.user = User.objects.get_or_create(pk=1)[0]

        SessionMiddleware().process_request(request)
        request.session.save()

        self.assertEqual(
            len(mail.outbox),
            0,
        )

        page_middleware.process_view(request, mezzanine_page_view, {}, {})
        self.assertEqual(len(mail.outbox), 1)
        self.assertNotIn('access your downloads', mail.outbox[0].body)

        download = Download.objects.create()
        download.forms.add(page)
        download.save()

        page_middleware.process_view(request, mezzanine_page_view, {}, {})
        self.assertEqual(len(mail.outbox), 2)
        self.assertIn('access your downloads', mail.outbox[1].body)
예제 #2
0
    def test_exact_page_processor_for(self):
        """
        Test that passing exact_page=True works with the PageMiddleware
        """
        from mezzanine.pages.middleware import PageMiddleware
        from mezzanine.pages.page_processors import processor_for
        from mezzanine.pages.views import page as page_view

        @processor_for('foo/bar', exact_page=True)
        def test_page_processor(request, page):
            return HttpResponse("bar")

        foo, _ = RichTextPage.objects.get_or_create(title="foo")
        bar, _ = RichTextPage.objects.get_or_create(title="bar", parent=foo)

        request = self._request_factory.get('/foo/bar/')
        request.user = self._user
        response = PageMiddleware().process_view(request, page_view, [], {})

        self.assertTrue(isinstance(response, HttpResponse))
        self.assertContains(response, "bar")