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 )
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://'))
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))
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, )
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, )