Ejemplo n.º 1
0
    def test_previous_solution_incorrect(self):
        client = RecaptchaClient(_FAKE_PRIVATE_KEY, _FAKE_PUBLIC_KEY)
        urls = client._get_challenge_urls(
            was_previous_solution_incorrect=True,
            use_ssl=False,
        )

        javascript_challenge_url = urls['javascript_challenge_url']
        javascript_challenge_url_components = \
            urlparse(javascript_challenge_url)
        javascript_challenge_url_query = parse_qs(
            javascript_challenge_url_components.query,
        )

        self.assertIn('error', javascript_challenge_url_query)
        self.assertEqual(
            'incorrect-captcha-sol',
            javascript_challenge_url_query['error'][0]
        )

        noscript_challenge_url = urls['noscript_challenge_url']
        noscript_challenge_url_components = urlparse(noscript_challenge_url)
        self.assertEqual(
            javascript_challenge_url_components.query,
            noscript_challenge_url_components.query
        )
Ejemplo n.º 2
0
    def test_ssl_not_required(self):
        client = RecaptchaClient(_FAKE_PRIVATE_KEY, _FAKE_PUBLIC_KEY)
        urls = client._get_challenge_urls(False, use_ssl=True)

        javascript_challenge_url = urls['javascript_challenge_url']
        self.assertTrue(javascript_challenge_url.startswith('https://'))

        noscript_challenge_url = urls['noscript_challenge_url']
        self.assertTrue(noscript_challenge_url.startswith('https://'))
Ejemplo n.º 3
0
    def test_ssl_required(self):
        client = RecaptchaClient(_FAKE_PRIVATE_KEY, _FAKE_PUBLIC_KEY)
        urls = client._get_challenge_urls(False, use_ssl=False)

        javascript_challenge_url = urls['javascript_challenge_url']

        self.assertTrue(
            javascript_challenge_url.startswith(_RECAPTCHA_API_URL)
        )

        noscript_challenge_url = urls['noscript_challenge_url']
        self.assertTrue(noscript_challenge_url.startswith(_RECAPTCHA_API_URL))
Ejemplo n.º 4
0
    def test_url_paths(self):
        client = RecaptchaClient(_FAKE_PRIVATE_KEY, _FAKE_PUBLIC_KEY)
        urls = client._get_challenge_urls(
            was_previous_solution_incorrect=False,
            use_ssl=False,
        )

        javascript_challenge_url = urls['javascript_challenge_url']
        javascript_challenge_url_components = \
            urlparse(javascript_challenge_url)

        noscript_challenge_url = urls['noscript_challenge_url']
        noscript_challenge_url_components = urlparse(noscript_challenge_url)

        self.assertNotEqual(
            javascript_challenge_url_components.path,
            noscript_challenge_url_components.path,
        )
Ejemplo n.º 5
0
    def test_public_key_inclusion(self):
        client = RecaptchaClient(_FAKE_PRIVATE_KEY, _FAKE_PUBLIC_KEY)
        urls = client._get_challenge_urls(False, False)

        javascript_challenge_url = urls['javascript_challenge_url']
        javascript_challenge_url_components = \
            urlparse(javascript_challenge_url)

        javascript_challenge_url_query = parse_qs(
            javascript_challenge_url_components.query,
        )

        self.assertIn('k', javascript_challenge_url_query)
        self.assertEqual(
            client.public_key,
            javascript_challenge_url_query['k'][0]
        )

        noscript_challenge_url = urls['noscript_challenge_url']
        noscript_challenge_url_components = urlparse(noscript_challenge_url)
        self.assertEqual(
            javascript_challenge_url_components.query,
            noscript_challenge_url_components.query,
        )