Esempio n. 1
0
    def test_success_message__not_sent_when_form_has_no_message(self):
        form = self.test_form()
        form.success_message = ""
        form.save()
        fake_request = self.rf.post(
            "/fake/",
            {
                "singleline": "Bill",
                "multiline": "Bill",
                "date": "2018-01-01",
                "datetime": "2018-01-01 00:00:00",
                "email": "*****@*****.**",
                "url": "http://google.co.uk",
                "number": 1,
                "dropdown": "Option 1",
                "radio": "Option 1",
                "checkboxes": "Option 1",
                "checkbox": "on",
                "hidden": "secret",
                "singlefile": self.get_file(),
                "multifile": self.get_file(),
                "form_id": form.pk,
                "form_reference": "some-ref",
            },
        )
        fake_request.user = AnonymousUser()

        process_form(self.page, fake_request)

        assert (not self.mock_success_message.called
                ), "messages.success should not have been called"
Esempio n. 2
0
    def test_success_message__sent_when_form_has_message(self):
        form = self.test_form()
        form.success_message = "well done"
        form.save()
        fake_request = self.rf.post(
            "/fake/",
            {
                "singleline": "Bill",
                "multiline": "Bill",
                "date": "2018-01-01",
                "datetime": "2018-01-01 00:00:00",
                "email": "*****@*****.**",
                "url": "http://google.co.uk",
                "number": 1,
                "dropdown": "Option 1",
                "radio": "Option 1",
                "checkboxes": "Option 1",
                "checkbox": "on",
                "hidden": "secret",
                "singlefile": self.get_file(),
                "multifile": self.get_file(),
                "form_id": form.pk,
                "form_reference": "some-ref",
            },
        )
        fake_request.user = AnonymousUser()

        process_form(self.page, fake_request)
        self.mock_success_message.assert_called()
        self.assertEqual(self.mock_success_message.call_args[0][1],
                         "well done")
        self.assertEqual(self.mock_success_message.call_args[1],
                         {"fail_silently": True})
    def test_valid_post_saves_submission(self):
        form = self.test_form()
        fake_request = self.rf.post('/fake/', {
            'name': 'Bill',
            'form_id': form.pk,
            'form_reference': 'some-ref'
        })
        fake_request.user = AnonymousUser()

        process_form(self.page, fake_request)

        self.assertEqual(form.get_submission_class().objects.count(), 1)
    def test_error_message__not_sent_when_form_has_no_message(self):
        form = self.test_form()
        form.error_message = ''
        form.save()
        fake_request = self.rf.post('/fake/', {
            'name': '',
            'form_id': form.pk,
            'form_reference': 'some-ref'
        })
        fake_request.user = AnonymousUser()

        process_form(self.page, fake_request)

        assert not self.mock_error_message.called, 'messages.error should not have been called'
    def test_success_message__sent_when_form_has_message(self):
        form = self.test_form()
        form.success_message = 'well done'
        form.save()
        fake_request = self.rf.post('/fake/', {
            'name': 'Bill',
            'form_id': form.pk,
            'form_reference': 'some-ref'
        })
        fake_request.user = AnonymousUser()

        process_form(self.page, fake_request)

        self.assertEqual(self.mock_success_message.call_args[0][1], 'well done')
        self.assertEqual(self.mock_success_message.call_args[1], {'fail_silently': True})
Esempio n. 6
0
    def test_valid_post_redirects__falls_back_to_current_page(self):
        form = self.test_form()
        fake_request = self.rf.post(
            "/fake/",
            {
                "singleline": "Bill",
                "multiline": "Bill",
                "date": "2018-01-01",
                "datetime": "2018-01-01 00:00:00",
                "email": "*****@*****.**",
                "url": "http://google.co.uk",
                "number": 1,
                "dropdown": "Option 1",
                "radio": "Option 1",
                "checkboxes": "Option 1",
                "checkbox": "on",
                "hidden": "secret",
                "singlefile": self.get_file(),
                "multifile": self.get_file(),
                "form_id": form.pk,
                "form_reference": "some-ref",
            },
        )
        fake_request.user = AnonymousUser()

        response = process_form(self.page, fake_request)
        response.client = Client()

        self.assertRedirects(response, self.page.get_url(fake_request))
Esempio n. 7
0
    def test_valid_post_redirects__to_the_forms_post_redirect_page(self):
        redirect_to = self.page.add_child(
            instance=Page(title="another", slug="another"))
        form = self.test_form()
        form.post_redirect_page = redirect_to
        form.save()
        fake_request = self.rf.post(
            "/fake/",
            {
                "singleline": "Bill",
                "multiline": "Bill",
                "date": "2018-01-01",
                "datetime": "2018-01-01 00:00:00",
                "email": "*****@*****.**",
                "url": "http://google.co.uk",
                "number": 1,
                "dropdown": "Option 1",
                "radio": "Option 1",
                "checkboxes": "Option 1",
                "checkbox": "on",
                "hidden": "secret",
                "singlefile": self.get_file(),
                "multifile": self.get_file(),
                "form_id": form.pk,
                "form_reference": "some-ref",
            },
        )
        fake_request.user = AnonymousUser()

        response = process_form(self.page, fake_request)
        response.client = Client()

        self.assertRedirects(response, redirect_to.get_url(fake_request))
    def test_get_returns_nothing(self):
        fake_request = self.rf.get('/fake/')
        fake_request.user = AnonymousUser()

        response = process_form(self.page, fake_request)

        self.assertIsNone(response)
Esempio n. 9
0
    def test_invalid_form_returns_response_with_form(self):
        form = self.test_form()
        fake_request = self.rf.post("/fake/", {
            "form_id": form.pk,
            "form_reference": "some-ref"
        })
        fake_request.user = AnonymousUser()

        response = process_form(self.page, fake_request)

        self.assertEqual(response.status_code, 200)
        self.assertEqual(
            response.context_data["invalid_stream_form_reference"], "some-ref")

        invalid_form = response.context_data["invalid_stream_form"]
        self.assertDictEqual(
            invalid_form.errors,
            {
                "singleline": ["This field is required."],
                "multiline": ["This field is required."],
                "date": ["This field is required."],
                "datetime": ["This field is required."],
                "email": ["This field is required."],
                "url": ["This field is required."],
                "number": ["This field is required."],
                "dropdown": ["This field is required."],
                "radio": ["This field is required."],
                "checkboxes": ["This field is required."],
                "checkbox": ["This field is required."],
                "hidden": ["This field is required."],
                "singlefile": ["This field is required."],
                "multifile": ["This field is required."],
            },
        )
Esempio n. 10
0
    def test_invalid_form_id_returns_nothing(self):
        self.test_form()
        fake_request = self.rf.post("/fake/", {"form_id": 100})
        fake_request.user = AnonymousUser()

        response = process_form(self.page, fake_request)

        self.assertIsNone(response)
    def test_no_form_id_returns_nothing(self):
        form = self.test_form()
        fake_request = self.rf.post('/fake/', {})
        fake_request.user = AnonymousUser()

        response = process_form(self.page, fake_request)

        self.assertIsNone(response)
Esempio n. 12
0
    def test_error_message__not_sent_when_form_has_no_message(self):
        form = self.test_form()
        form.error_message = ""
        form.save()
        fake_request = self.rf.post(
            "/fake/",
            {
                "singleline": "",
                "form_id": form.pk,
                "form_reference": "some-ref"
            },
        )
        fake_request.user = AnonymousUser()

        process_form(self.page, fake_request)

        assert (not self.mock_error_message.called
                ), "messages.error should not have been called"
Esempio n. 13
0
    def test_error_message__sent_when_form_has_message(self):
        form = self.test_form()
        form.error_message = "oops"
        form.save()
        fake_request = self.rf.post(
            "/fake/",
            {
                "singleline": "",
                "form_id": form.pk,
                "form_reference": "some-ref"
            },
        )
        fake_request.user = AnonymousUser()

        process_form(self.page, fake_request)

        self.assertEqual(self.mock_error_message.call_args[0][1], "oops")
        self.assertEqual(self.mock_error_message.call_args[1],
                         {"fail_silently": True})
Esempio n. 14
0
    def test_hook_disabled_when_setting_false(self):
        form = self.test_form()
        fake_request = self.rf.post("/fake/", {
            "name": "Bill",
            "form_id": form.pk,
            "form_reference": "some-ref"
        })
        fake_request.user = AnonymousUser()

        response = process_form(self.page, fake_request)

        self.assertIsNone(response)
    def test_hook_disabled_when_setting_false(self):
        form = self.test_form()
        fake_request = self.rf.post('/fake/', {
            'name': 'Bill',
            'form_id': form.pk,
            'form_reference': 'some-ref'
        })
        fake_request.user = AnonymousUser()

        response = process_form(self.page, fake_request)

        self.assertIsNone(response)
    def test_valid_post_redirects__falls_back_to_current_page(self):
        form = self.test_form()
        fake_request = self.rf.post('/fake/', {
            'name': 'Bill',
            'form_id': form.pk,
            'form_reference': 'some-ref'
        })
        fake_request.user = AnonymousUser()

        response = process_form(self.page, fake_request)
        response.client = Client()

        self.assertRedirects(response, self.page.get_url(fake_request))
    def test_invalid_form_returns_response_with_form(self):
        form = self.test_form()
        fake_request = self.rf.post('/fake/', {
            'name': '',
            'form_id': form.pk,
            'form_reference': 'some-ref'
        })
        fake_request.user = AnonymousUser()

        response = process_form(self.page, fake_request)

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.context_data['invalid_stream_form_reference'], 'some-ref')

        invalid_form = response.context_data['invalid_stream_form']
        self.assertEqual(invalid_form.errors, {'name': ['This field is required.']})
    def test_valid_post_redirects__to_the_forms_post_redirect_page(self):
        redirect_to = self.page.add_child(instance=Page(title="another", slug="another"))
        form = self.test_form()
        form.post_redirect_page = redirect_to
        form.save()
        fake_request = self.rf.post('/fake/', {
            'name': 'Bill',
            'form_id': form.pk,
            'form_reference': 'some-ref'
        })
        fake_request.user = AnonymousUser()

        response = process_form(self.page, fake_request)
        response.client = Client()

        self.assertRedirects(response, redirect_to.get_url(fake_request))