Esempio n. 1
0
def test_verify_twitter_invalid_verifier(mock_session, app):
    responses.add(
        responses.POST,
        twitter_access_token_url,
        status=401
    )

    args = {
        'eth_address': '0x112234455C3a32FD11230C42E7Bccd4A84e02010',
        'oauth_verifier': 'pineapples'
    }

    session_dict = {
        'request_token': {
            'oauth_token': '1234',
            'oauth_token_secret': '5678'
        }
    }

    with mock.patch('logic.attestation_service.session', session_dict):
        with pytest.raises(TwitterVerificationError) as service_err:
            with app.test_request_context():
                VerificationService.verify_twitter(**args)

    assert str(service_err.value) == 'The verifier you provided is invalid.'

    # Verify attestation not stored
    attestations = Attestation.query.all()
    assert(len(attestations)) == 0
Esempio n. 2
0
def test_verify_twitter_invalid_session(mock_session, mock_requests):
    args = {
        'eth_address': '0x112234455C3a32FD11230C42E7Bccd4A84e02010',
        'oauth_verifier': 'pineapples'
    }

    with pytest.raises(TwitterVerificationError) as service_err:
        VerificationService.verify_twitter(**args)

    assert str(service_err.value) == 'Session not found.'
Esempio n. 3
0
def test_verify_twitter_invalid_verifier(mock_session, mock_requests):
    dict = {'request_token': 'bar'}
    mock_session.__contains__.side_effect = dict.__contains__
    mock_requests.post().status_code = 401
    args = {
        'eth_address': '0x112234455C3a32FD11230C42E7Bccd4A84e02010',
        'oauth_verifier': 'pineapples'
    }
    with pytest.raises(TwitterVerificationError) as service_err:
        VerificationService.verify_twitter(**args)

    assert str(service_err.value) == 'The verifier you provided is invalid.'
Esempio n. 4
0
def test_verify_twitter_valid_code(mock_session, app):
    responses.add(
        responses.POST,
        twitter_access_token_url,
        body=b'screen_name=originprotocol',
        status=200
    )

    args = {
        'eth_address': '0x112234455C3a32FD11230C42E7Bccd4A84e02010',
        'oauth_verifier': 'blueberries'
    }

    session_dict = {
        'request_token': {
            'oauth_token': '1234',
            'oauth_token_secret': '5678'
        }
    }

    with mock.patch('logic.attestation_service.session', session_dict):
        with app.test_request_context():
            verification_response = VerificationService.verify_twitter(**args)

    assert isinstance(verification_response, VerificationServiceResponse)

    assert len(verification_response.data['signature']) == SIGNATURE_LENGTH
    assert verification_response.data['claim_type'] == CLAIM_TYPES['twitter']
    assert verification_response.data['data'] == 'twitter verified'

    # Verify attestation stored in database
    attestations = Attestation.query.all()
    assert(len(attestations)) == 1
    assert(attestations[0].method) == AttestationTypes.TWITTER
    assert(attestations[0].value) == 'originprotocol'
Esempio n. 5
0
def test_verify_twitter_invalid_session(mock_session, mock_requests,
                                        mock_ipfs):
    args = {
        'eth_address': '0x112234455C3a32FD11230C42E7Bccd4A84e02010',
        'oauth_verifier': 'pineapples'
    }

    mock_ipfs.return_value.add_json.return_value = \
        'QmYpVLAyQ2SV7NLATdN3xnHTewoQ3LYN85LAcvN1pr2k3z'

    with pytest.raises(TwitterVerificationError) as service_err:
        VerificationService.verify_twitter(**args)

    assert str(service_err.value) == 'Session not found.'

    # Verify attestation not stored
    attestations = Attestation.query.all()
    assert (len(attestations)) == 0
Esempio n. 6
0
def test_verify_twitter_valid_code(mock_session, mock_requests):
    dict = {'request_token': 'bar'}
    mock_session.__contains__.side_effect = dict.__contains__
    mock_requests.post().status_code = 200
    args = {
        'eth_address': '0x112234455C3a32FD11230C42E7Bccd4A84e02010',
        'oauth_verifier': 'blueberries'
    }
    resp = VerificationService.verify_twitter(**args)
    resp_data = resp.data
    assert isinstance(resp, VerificationServiceResponse)
    assert len(resp_data['signature']) == SIGNATURE_LENGTH
    assert resp_data['claim_type'] == CLAIM_TYPES['twitter']
    assert resp_data['data'] == 'twitter verified'
Esempio n. 7
0
def test_verify_twitter_valid_code(mock_session, mock_ipfs, app):
    responses.add(responses.POST,
                  twitter_access_token_url,
                  body=b'screen_name=originprotocol',
                  status=200)

    args = {
        'eth_address': '0x112234455C3a32FD11230C42E7Bccd4A84e02010',
        'oauth_verifier': 'blueberries'
    }

    session_dict = {
        'request_token': {
            'oauth_token': '1234',
            'oauth_token_secret': '5678'
        }
    }

    mock_ipfs.return_value.add_json.return_value = \
        'QmYpVLAyQ2SV7NLATdN3xnHTewoQ3LYN85LAcvN1pr2k3z'

    with mock.patch('logic.attestation_service.session', session_dict):
        with app.test_request_context():
            verification_response = VerificationService.verify_twitter(**args)

    assert isinstance(verification_response, VerificationServiceResponse)

    assert str(mock_ipfs().add_json()) == verification_response.data['data']
    assert verification_response.data['signature'] \
        == '0xd397a2a7ae96714aa7e68c62d400b2786e919fe445c471e574e5' \
        + '20bd2faade13333310b20c5555b416b095bf7fce36ec5b0af2c35b2fcfd3154138677027edb11b'
    assert len(verification_response.data['signature']) == SIGNATURE_LENGTH
    assert verification_response.data['claim_type'] == TOPICS['twitter']
    assert verification_response.data['data'] \
        == 'QmYpVLAyQ2SV7NLATdN3xnHTewoQ3LYN85LAcvN1pr2k3z'

    # Verify attestation stored in database
    attestations = Attestation.query.all()
    assert (len(attestations)) == 1
    assert (attestations[0].method) == AttestationTypes.TWITTER
    assert (attestations[0].value) == 'originprotocol'
Esempio n. 8
0
def test_verify_twitter_valid_code(mock_session, app):
    responses.add(responses.POST,
                  twitter_access_token_url,
                  body=b'screen_name=originprotocol',
                  status=200)

    args = {
        'eth_address': '0x112234455C3a32FD11230C42E7Bccd4A84e02010',
        'oauth_verifier': 'blueberries'
    }

    session_dict = {
        'request_token': {
            'oauth_token': '1234',
            'oauth_token_secret': '5678'
        }
    }

    with mock.patch('logic.attestation_service.session', session_dict):
        with app.test_request_context():
            response = VerificationService.verify_twitter(**args)
    assert isinstance(response, VerificationServiceResponse)

    assert response.data['signature']['version'] == '1.0.0'
    assert len(response.data['signature']['bytes']) == SIGNATURE_LENGTH
    assert response.data[
        'schemaId'] == 'https://schema.originprotocol.com/attestation_1.0.0.json'
    validate_issuer(response.data['data']['issuer'])
    assert response.data['data']['issueDate']
    assert response.data['data']['attestation']['verificationMethod']['oAuth']
    assert response.data['data']['attestation']['site'][
        'siteName'] == 'twitter.com'
    assert response.data['data']['attestation']['site']['userId'][
        'raw'] == 'originprotocol'

    # Verify attestation stored in database
    attestations = Attestation.query.all()
    assert (len(attestations)) == 1
    assert (attestations[0].method) == AttestationTypes.TWITTER
    assert (attestations[0].value) == 'originprotocol'