コード例 #1
0
 def test_client_failure_response(self, mocked_submit):
     mocked_submit.return_value = RecaptchaResponse(
         is_valid=False, error_codes=["410"]
     )
     form_params = {"g-recaptcha-response": "PASSED"}
     form = DefaultForm(form_params)
     self.assertFalse(form.is_valid())
コード例 #2
0
def test_contact_form_posts(
    client, mocker, name, email, phone, subject, message, captcha, validity
):
    """Contact Form Tests on the template"""
    mocker.patch("captcha.fields.client.submit")
    mocker.return_value = RecaptchaResponse(is_valid=True)

    response = client.post(
        "/contact/",
        {
            "name": name,
            "email": email,
            "phone": phone,
            "subject": subject,
            "message": message,
            "g-recaptcha-response": captcha,
        },
        follow=True,
    )

    assert response.status_code == 200

    # check that emails were sent
    assert len(mail.outbox) == 2
    assert f"<hr> <br> <br><strong>Sent by:</strong> {name}" in mail.outbox[0].body
    assert f"Dear <strong>{name}</strong>" in mail.outbox[1].body
コード例 #3
0
ファイル: view_tests.py プロジェクト: CarlOfHoly/onlineweb4
    def test_attend_with_payment_creates_paymentdelay(self, mocked_submit):
        mocked_submit.return_value = RecaptchaResponse(is_valid=True)
        event = G(Event)
        G(
            AttendanceEvent,
            event=event,
            registration_start=timezone.now() - timedelta(days=1),
            registration_end=timezone.now() + timedelta(days=1),
        )
        self.event_payment = generate_payment(event,
                                              payment_type=3,
                                              delay=timedelta(days=2))
        G(PaymentPrice, price=200, payment=self.event_payment)
        url = reverse("attend_event", args=(event.id, ))

        form_params = {"g-recaptcha-response": "PASSED"}
        G(
            Membership,
            username=self.user.ntnu_username,
            expiration_date=timezone.now() + timedelta(days=1),
        )
        MarkRuleSet.accept_mark_rules(self.user)

        self.client.post(url, form_params, follow=True)

        self.assertTrue(PaymentDelay.objects.filter(user=self.user).exists())
コード例 #4
0
ファイル: view_tests.py プロジェクト: tor0405/onlineweb4
    def test_attend_twice(self, mocked_submit):
        mocked_submit.return_value = RecaptchaResponse(is_valid=True)
        event = G(Event)
        G(
            AttendanceEvent,
            event=event,
            registration_start=timezone.now() - timedelta(days=1),
            registration_end=timezone.now() + timedelta(days=1),
        )
        url = reverse("attend_event", args=(event.id, ))

        form_params = {"g-recaptcha-response": "PASSED"}
        G(
            Membership,
            username=self.user.ntnu_username,
            expiration_date=timezone.now() + timedelta(days=1),
        )
        MarkRuleSet.accept_mark_rules(self.user)

        self.client.post(url, form_params, follow=True)
        response = self.client.post(url, form_params, follow=True)

        self.assertRedirects(response, event.get_absolute_url())
        self.assertInMessages("Du er allerede meldt på dette arrangementet.",
                              response)
コード例 #5
0
ファイル: conftest.py プロジェクト: uktrade/great-domestic-ui
def captcha_stub():
    stub = mock.patch('captcha.fields.client.submit')
    stub.return_value = RecaptchaResponse(is_valid=False,
                                          extra_data={'score': 1.0})
    stub.start()
    yield 'PASSED'
    stub.stop()
コード例 #6
0
ファイル: test_fields.py プロジェクト: Freshrojek/LKHWebsite
    def test_required_score_bot_setting(self, mocked_submit):
        class VThreeDomainForm(forms.Form):
            captcha = fields.ReCaptchaField(widget=widgets.ReCaptchaV3())

        mocked_submit.return_value = RecaptchaResponse(is_valid=True,
                                                       extra_data={'score': 0})
        form_params = {"captcha": "PASSED"}
        form = VThreeDomainForm(form_params)
        self.assertFalse(form.is_valid())
コード例 #7
0
ファイル: test_fields.py プロジェクト: Freshrojek/LKHWebsite
    def test_client_empty_score_threshold_v3(self, mocked_submit):
        class VThreeDomainForm(forms.Form):
            captcha = fields.ReCaptchaField(widget=widgets.ReCaptchaV3())

        mocked_submit.return_value = RecaptchaResponse(
            is_valid=True, extra_data={'score': 0.1})
        form_params = {"captcha": "PASSED"}
        form = VThreeDomainForm(form_params)
        self.assertTrue(form.is_valid())
コード例 #8
0
 def test_can_signup(self, mocked_submit):
     mocked_submit.return_value = RecaptchaResponse(is_valid=True) 
     response = self.client.post(reverse('signup'),
      {'username':'******',
       'password1':'aolswontgetme',
       'password2':'aolswontgetme',
       'g-recaptcha-response': 'PASSED'},
       follow=True)
     self.assertEqual(response.status_code, 200)
     self.assertEqual(response.redirect_chain[0][0], reverse('pool:index'))
コード例 #9
0
 def test_login_without_captcha_passed(self, mocked_submit):
     mocked_submit.return_value = RecaptchaResponse(is_valid=False)
     # send login data to form directly
     form = CustomLoginForm(
         data={
             "username": self.user.email,
             "password": self.password,
             "g-recaptcha-response": "FAIL",
         }
     )
     self.assertFalse(form.is_valid())
コード例 #10
0
 def test_login_without_staff_user(self, mocked_submit):
     mocked_submit.return_value = RecaptchaResponse(is_valid=True)
     # send login data to form directly
     self.user.is_staff = False
     self.user.save()
     form = CustomLoginForm(
         data={
             "username": self.user.email,
             "password": self.password,
             "g-recaptcha-response": "PASSED",
         }
     )
     self.assertFalse(form.is_valid())
コード例 #11
0
    def test_attend_invalid_captcha(self, mocked_submit):
        mocked_submit.return_value = RecaptchaResponse(is_valid=False)
        url = reverse('attend_event', args=(self.event.id,))
        form_params = {'g-recaptcha-response': 'WRONG'}
        G(AllowedUsername, username=self.user.ntnu_username,
          expiration_date=timezone.now() + timedelta(days=1))
        self.user.mark_rules = True
        self.user.save()

        response = self.client.post(url, form_params, follow=True)

        self.assertRedirects(response, self.event.get_absolute_url())
        self.assertInMessages(
            'Du klarte ikke captchaen! Er du en bot?', response)
コード例 #12
0
 def test_user_can_contribute(self, mocked_submit):
     self.client.login(username=self.user.username, password='******')
     feedback_img = create_image(None, 'feedback.jpg')
     feedback_file = SimpleUploadedFile('feedback.jpg', feedback_img.getvalue())
     mocked_submit.return_value = RecaptchaResponse(is_valid=True)
     response = self.client.post(self.contribute_url,
      {'level': 'BEGINNER',
       'target_description': 'This is a test',
       'additional_feedback': 'Yes.. just a test.',
       'tasking': 'This is a test',
       'feedback_image': feedback_file,
       'g-recaptcha-response': 'PASSED'},
        follow=True)
     self.assertEqual(response.status_code, 200)
     self.assertEqual(response.redirect_chain[0][0], '/pool/thanks/')
コード例 #13
0
    def test_triggers_the_sending_of_a_contact_email(self, mocked_submit,
                                                     client):
        mocked_submit.return_value = RecaptchaResponse(is_valid=True)

        post_data = {
            'first_name': 'John',
            'last_name': 'Doe',
            'email': '*****@*****.**',
            'subject': 'Contact',
            'message': 'Hello',
            'g-recaptcha-response': 'PASSED',
        }
        response = client.post(reverse('contact'), post_data, follow=False)
        assert response.status_code == 302
        assert len(mail.outbox) == 1
        assert mail.outbox[0].to[0] == settings.PROJECT_CONTACT_EMAIL
コード例 #14
0
def test_contact_form(mocker, name, email, phone, subject, message, captcha, validity):
    """Contact Form Tests at lower level"""
    mocker.patch("captcha.fields.client.submit")
    mocker.return_value = RecaptchaResponse(is_valid=True)
    form = ContactUs(
        {
            "name": name,
            "email": email,
            "phone": phone,
            "subject": subject,
            "message": message,
            "g-recaptcha-response": captcha,
        }
    )

    assert form.is_valid() is validity
コード例 #15
0
ファイル: view_tests.py プロジェクト: CarlOfHoly/onlineweb4
    def test_attend_invalid_captcha(self, mocked_submit):
        mocked_submit.return_value = RecaptchaResponse(is_valid=False)
        url = reverse("attend_event", args=(self.event.id, ))
        form_params = {"g-recaptcha-response": "WRONG"}
        G(
            Membership,
            username=self.user.ntnu_username,
            expiration_date=timezone.now() + timedelta(days=1),
        )
        MarkRuleSet.accept_mark_rules(self.user)

        response = self.client.post(url, form_params, follow=True)

        self.assertRedirects(response, self.event.get_absolute_url())
        self.assertInMessages("Du klarte ikke captchaen! Er du en bot?",
                              response)
コード例 #16
0
    def test_field_instantiate_values(self, mocked_submit):
        mocked_submit.return_value = RecaptchaResponse(is_valid=True)

        class NonDefaultForm(forms.Form):
            captcha = fields.ReCaptchaField(private_key="NewUpdatedKey",
                                            public_key="NewPubKey")

        form_params = {"g-recaptcha-response": "PASSED"}
        form = NonDefaultForm(form_params)
        self.assertTrue(form.is_valid())
        mocked_submit.assert_called_with(
            private_key="NewUpdatedKey",
            recaptcha_response="PASSED",
            remoteip=None,
        )
        html = form.as_p()
        self.assertIn('data-sitekey="NewPubKey"', html)
コード例 #17
0
ファイル: test_account.py プロジェクト: f0rmatme/saleor-v1
def test_requires_recaptcha(captcha_submit_mock, settings):
    """
    This test creates a new form
    that should contain a (required) recaptcha field.
    """
    captcha_submit_mock.return_value = RecaptchaResponse(is_valid=True)

    settings.RECAPTCHA_PUBLIC_KEY = recaptcha_constants.TEST_PUBLIC_KEY
    settings.RECAPTCHA_PRIVATE_KEY = recaptcha_constants.TEST_PRIVATE_KEY

    class TestForm(Form, FormWithReCaptcha):
        pass

    form = TestForm({})
    assert not form.is_valid()

    form = TestForm({"g-recaptcha-response": "PASSED"})
    assert form.is_valid()
コード例 #18
0
    def test_attend_before_registration_start(self, mocked_submit):
        mocked_submit.return_value = RecaptchaResponse(is_valid=True)
        event = G(Event)
        G(AttendanceEvent, event=event,
          registration_start=timezone.now() + timedelta(days=1),
          registration_end=timezone.now() + timedelta(days=2))
        url = reverse('attend_event', args=(event.id,))

        form_params = {'g-recaptcha-response': 'PASSED'}
        G(AllowedUsername, username=self.user.ntnu_username,
          expiration_date=timezone.now() + timedelta(days=1))
        self.user.mark_rules = True
        self.user.save()

        response = self.client.post(url, form_params, follow=True)

        self.assertRedirects(response, event.get_absolute_url())
        self.assertInMessages('Påmeldingen har ikke åpnet enda.', response)
コード例 #19
0
def test_send_mail_bad_header_error(
    client, mocker, name, email, phone, subject, message, captcha, validity
):
    """Contact Form: we raise a BadHeaderError when sending mail"""

    # Empty the test outbox before we proceed
    mail.outbox = []

    mocker.patch(
        "captcha.fields.client.submit", return_value=RecaptchaResponse(is_valid=True)
    )
    # mocker.patch('django.core.mail.send_mail', autospec=True, side_effect=BadHeaderError)
    mocker.patch(
        "{{cookiecutter.project_slug}}.contact.models.send_mail", autospec=True, side_effect=BadHeaderError()
    )

    response = client.post(
        "/contact/",
        {
            "name": name,
            "email": email,
            "phone": phone,
            "subject": subject,
            "message": message,
            "g-recaptcha-response": captcha,
        },
        follow=True,
    )

    assert response.status_code == 200

    # check that emails were not sent (due to BadHeaderError)
    assert len(mail.outbox) == 0

    # get message from context and check that expected text is there
    message = list(response.context.get("messages"))[0]
    assert message.tags == "error"
    assert "Oops! Something went wrong, please try again" in message.message
コード例 #20
0
ファイル: tests.py プロジェクト: jdmueller/ArmoniaSaleor
 def test_client_success_response(self, mocked_submit):
     mocked_submit.return_value = RecaptchaResponse(is_valid=True)
     form_params = {'recaptcha_response_field': 'PASSED'}
     form = TestForm(form_params)
     self.assertTrue(form.is_valid())
コード例 #21
0
 def test_client_success_response(self, mocked_submit):
     mocked_submit.return_value = RecaptchaResponse(is_valid=True)
     form_params = {"g-recaptcha-response": "PASSED"}
     form = DefaultForm(form_params)
     self.assertTrue(form.is_valid())
コード例 #22
0
ファイル: tests.py プロジェクト: jdmueller/ArmoniaSaleor
 def test_client_failure_response(self, mocked_submit):
     mocked_submit.return_value = RecaptchaResponse(is_valid=False,
                                                    error_code="410")
     form_params = {'recaptcha_response_field': 'PASSED'}
     form = TestForm(form_params)
     self.assertFalse(form.is_valid())