def test_verify_facebook_invalid_code(): auth_url = 'https://graph.facebook.com/v2.12/oauth/access_token' + \ '?client_id=facebook-client-id' + \ '&client_secret=facebook-client-secret' + \ '&redirect_uri=https%3A%2F%2Ftesthost.com%2Fredirects%2Ffacebook%2F' + \ '&code=bananas' responses.add( responses.GET, auth_url, json={'error': 'invalid'}, status=403 ) args = { 'eth_address': '0x112234455C3a32FD11230C42E7Bccd4A84e02010', 'code': 'bananas' } with pytest.raises(FacebookVerificationError) as service_err: VerificationService.verify_facebook(**args) assert str(service_err.value) == 'The code you provided is invalid.' # Verify attestation not stored attestations = Attestation.query.all() assert(len(attestations)) == 0
def test_verify_facebook_valid_code(MockHttpConnection): mock_http_conn = mock.Mock() mock_get_response = mock.Mock() mock_get_response.read.return_value = '{"access_token": "foo"}' mock_http_conn.getresponse.return_value = mock_get_response MockHttpConnection.return_value = mock_http_conn args = { 'eth_address': '0x112234455C3a32FD11230C42E7Bccd4A84e02010', 'code': 'abcde12345' } resp = VerificationService.verify_facebook(**args) assert isinstance(resp, VerificationServiceResponse) resp_data = resp.data mock_http_conn.request.assert_called_once_with( 'GET', '/v2.12/oauth/access_token?client_id=facebook-client-id&' + 'client_secret=facebook-client-secret&redirect_uri=' + 'https://testhost.com/redirects/facebook/&code=abcde12345') assert len(resp_data['signature']) == SIGNATURE_LENGTH assert resp_data['claim_type'] == CLAIM_TYPES['facebook'] assert resp_data['data'] == 'facebook verified' # Verify attestation stored in database attestations = Attestation.query.all() assert(len(attestations)) == 1 assert(attestations[0].method) == AttestationTypes.FACEBOOK
def test_verify_facebook_valid_code(app): auth_url = 'https://graph.facebook.com/v2.12/oauth/access_token' + \ '?client_id=facebook-client-id' + \ '&client_secret=facebook-client-secret' + \ '&redirect_uri=https%3A%2F%2Ftesthost.com%2Fredirects%2Ffacebook%2F' + \ '&code=abcde12345' verify_url = 'https://graph.facebook.com/me?access_token=12345' responses.add(responses.GET, auth_url, json={'access_token': 12345}, status=200) responses.add(responses.GET, verify_url, json={'name': 'Origin Protocol'}, status=200) args = { 'eth_address': '0x112234455C3a32FD11230C42E7Bccd4A84e02010', 'code': 'abcde12345' } with app.test_request_context(): verification_response = VerificationService.verify_facebook(**args) assert isinstance(verification_response, VerificationServiceResponse) assert len(verification_response.data['signature']) == SIGNATURE_LENGTH assert verification_response.data['claim_type'] == TOPICS['facebook'] assert verification_response.data['data'] == 'facebook verified' # Verify attestation stored in database attestations = Attestation.query.all() assert (len(attestations)) == 1 assert (attestations[0].method) == AttestationTypes.FACEBOOK assert (attestations[0].value) == 'Origin Protocol'
def test_verify_facebook_invalid_code(MockHttpConnection): mock_http_conn = mock.Mock() mock_get_response = mock.Mock() mock_get_response.read.return_value = '{"error": "bar"}' mock_http_conn.getresponse.return_value = mock_get_response MockHttpConnection.return_value = mock_http_conn args = { 'eth_address': '0x112234455C3a32FD11230C42E7Bccd4A84e02010', 'code': 'bananas' } with pytest.raises(FacebookVerificationError) as service_err: VerificationService.verify_facebook(**args) mock_http_conn.request.assert_called_once_with( 'GET', '/v2.12/oauth/access_token?client_id=facebook-client-id' + '&client_secret=facebook-client-secret&' + 'redirect_uri=https://testhost.com/redirects/facebook/&code=bananas') assert str(service_err.value) == 'The code you provided is invalid.'