예제 #1
0
def test_verify_airbnb_verification_code_internal_server_error(
        mock_urllib_request):
    with pytest.raises(AirbnbVerificationError) as service_err:
        VerificationService.verify_airbnb(
            '0x112234455C3a32FD11230C42E7Bccd4A84e02010', "123")

    assert str(service_err.value) == "Can not fetch user's Airbnb profile."
예제 #2
0
def test_verify_airbnb_verification_code_internal_server_error(
        mock_urllib_request, mock_ipfs):
    mock_ipfs.return_value.add_json.return_value = \
        'QmYpVLAyQ2SV7NLATdN3xnHTewoQ3LYN85LAcvN1pr2k3z'
    with pytest.raises(AirbnbVerificationError) as service_err:
        VerificationService.verify_airbnb(
            '0x112234455C3a32FD11230C42E7Bccd4A84e02010', "123")

    assert str(service_err.value) == "Can not fetch user's Airbnb profile."
예제 #3
0
def test_verify_airbnb_verification_code_non_existing_user(
        mock_urllib_request):
    with pytest.raises(AirbnbVerificationError) as service_err:
        VerificationService.verify_airbnb(
            '0x112234455C3a32FD11230C42E7Bccd4A84e02010', "99999999999999999")

    assert str(
        service_err.value) == 'Airbnb user id: 99999999999999999 not found.'

    # Verify attestation not stored
    attestations = Attestation.query.all()
    assert (len(attestations)) == 0
예제 #4
0
def test_verify_airbnb_verification_code_non_existing_user(
        mock_urllib_request, mock_ipfs):
    mock_ipfs.return_value.add_json.return_value = \
        'QmYpVLAyQ2SV7NLATdN3xnHTewoQ3LYN85LAcvN1pr2k3z'
    with pytest.raises(AirbnbVerificationError) as service_err:
        VerificationService.verify_airbnb(
            '0x112234455C3a32FD11230C42E7Bccd4A84e02010', "99999999999999999")

    assert str(
        service_err.value) == 'Airbnb user id: 99999999999999999 not found.'

    # Verify attestation not stored
    attestations = Attestation.query.all()
    assert (len(attestations)) == 0
def test_verify_airbnb(mock_urllib_request):
    mock_urllib_request.return_value.read.return_value = """
        <html><div>
            Airbnb profile description
            Origin verification code: art brick aspect accident brass betray antenna
            some more profile description
        </div></html>""".encode('utf-8')
    airbnbUserId = "123456"

    resp = VerificationService.verify_airbnb(
        '0x112234455C3a32FD11230C42E7Bccd4A84e02010',
        airbnbUserId
    )
    assert isinstance(resp, VerificationServiceResponse)

    resp_data = resp.data
    assert len(resp_data['signature']) == SIGNATURE_LENGTH
    assert resp_data['claim_type'] == CLAIM_TYPES['airbnb']
    assert resp_data['data'] == 'airbnbUserId:' + airbnbUserId

    # Verify attestation stored in database
    attestations = Attestation.query.all()
    assert(len(attestations)) == 1
    assert(attestations[0].method) == AttestationTypes.AIRBNB
    assert(attestations[0].value) == "123456"
예제 #6
0
def test_verify_airbnb(mock_urllib_request, mock_ipfs, app):
    mock_urllib_request.return_value.read.return_value = """
        <html><div>
            Airbnb profile description
            Origin verification code: art brick aspect accident brass betray antenna
            some more profile description
        </div></html>""".encode('utf-8')
    mock_ipfs.return_value.add_json.return_value = \
        'QmYpVLAyQ2SV7NLATdN3xnHTewoQ3LYN85LAcvN1pr2k3z'
    airbnbUserId = "123456"

    with app.test_request_context():
        verification_response = VerificationService.verify_airbnb(
            '0x112234455C3a32FD11230C42E7Bccd4A84e02010', airbnbUserId)
    assert isinstance(verification_response, VerificationServiceResponse)

    assert len(verification_response.data['signature']) == SIGNATURE_LENGTH
    assert verification_response.data['claim_type'] == TOPICS['airbnb']
    assert verification_response.data['data'] \
        == 'QmYpVLAyQ2SV7NLATdN3xnHTewoQ3LYN85LAcvN1pr2k3z'

    # Verify attestation stored in database
    attestations = Attestation.query.all()
    assert (len(attestations)) == 1
    assert (attestations[0].method) == AttestationTypes.AIRBNB
    assert (attestations[0].value) == "123456"
예제 #7
0
def test_verify_airbnb_verification_code_missing(mock_urllib_request):
    mock_urllib_request.return_value.read.return_value = """
        <html><div>
        Airbnb profile description some more profile description
        </div></html>""".encode('utf-8')

    with pytest.raises(AirbnbVerificationError) as service_err:
        VerificationService.verify_airbnb(
            '0x112234455C3a32FD11230C42E7Bccd4A84e02010', "123456")

    assert str(service_err.value) == "Origin verification code: art brick aspect " \
        + "accident brass betray antenna has not been found in user's Airbnb profile."

    # Verify attestation not stored
    attestations = Attestation.query.all()
    assert (len(attestations)) == 0
예제 #8
0
def test_verify_airbnb(mock_urllib_request, app):
    mock_urllib_request.return_value.read.return_value = """
        <html><div>
            Airbnb profile description
            Origin verification code: art brick aspect accident brass betray antenna
            some more profile description
        </div></html>""".encode('utf-8')
    airbnbUserId = "123456"

    with app.test_request_context():
        response = VerificationService.verify_airbnb(
            '0x112234455C3a32FD11230C42E7Bccd4A84e02010', airbnbUserId)
    assert isinstance(response, VerificationServiceResponse)

    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'][
        'pubAuditableUrl'] == {}
    assert response.data['data']['attestation']['site'][
        'siteName'] == 'airbnb.com'
    assert response.data['data']['attestation']['site']['userId'][
        'raw'] == '123456'

    # Verify attestation stored in database
    attestations = Attestation.query.all()
    assert (len(attestations)) == 1
    assert (attestations[0].method) == AttestationTypes.AIRBNB
    assert (attestations[0].value) == "123456"
예제 #9
0
def test_verify_airbnb_verification_code_incorrect_user_id_format(
        mock_urllib_request):
    mock_urllib_request.return_value.read.return_value = """
        <html><div>
        Airbnb profile description
        Origin verification code: art brick aspect accident brass betray antenna
        some more profile description
        </div></html>""".encode('utf-8')

    with pytest.raises(ValidationError) as validation_error:
        VerificationService.verify_airbnb(
            '0x112234455C3a32FD11230C42E7Bccd4A84e02010', "12a34")

    assert str(validation_error.value) == 'AirbnbUserId should be a number.'

    # Verify attestation not stored
    attestations = Attestation.query.all()
    assert (len(attestations)) == 0
예제 #10
0
def test_verify_airbnb_verification_code_incorrect(mock_urllib_request,
                                                   mock_ipfs):
    mock_urllib_request.return_value.read.return_value = """
        <html><div>
        Airbnb profile description
        Origin verification code: art brick aspect pimpmobile
        some more profile description
        </div></html>""".encode('utf-8')
    mock_ipfs.return_value.add_json.return_value = \
        'QmYpVLAyQ2SV7NLATdN3xnHTewoQ3LYN85LAcvN1pr2k3z'

    with pytest.raises(AirbnbVerificationError) as service_err:
        VerificationService.verify_airbnb(
            '0x112234455C3a32FD11230C42E7Bccd4A84e02010', "123456")

    assert str(service_err.value) == "Origin verification code: art brick aspect " \
        + "accident brass betray antenna has not been found in user's Airbnb profile."

    # Verify attestation not stored
    attestations = Attestation.query.all()
    assert (len(attestations)) == 0