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
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.'
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.'
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'
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
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'
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'
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'