Пример #1
0
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
Пример #3
0
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'
Пример #4
0
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.'