Example #1
0
def test_es_preference_param(app):
    """Test the preference param is correctly added in a request."""
    BaseRecordsSearch.__bases__ = (SpySearch, )

    with app.test_request_context('/',
                                  headers={'User-Agent': 'Chrome'},
                                  environ_base={'REMOTE_ADDR': '212.54.1.8'}):
        rs = RecordsSearch()
        new_rs = rs.with_preference_param()

        alg = hashlib.md5()
        encoded_user_agent = 'Chrome'.encode('utf8')
        encoded_user_string = '{ip}-{ua}'.format(ip=request.remote_addr,
                                                 ua=encoded_user_agent)
        alg.update(encoded_user_string.encode('utf8'))
        digest = alg.hexdigest()

        assert new_rs.exposed_params == dict(preference=digest)

    # Note: V2 does not require a request context
    BaseRecordsSearchV2.__bases__ = (SpySearch, )

    rs = RecordsSearchV2()
    new_rs = rs.with_preference_param(preference=1234)
    assert new_rs.exposed_params == {'preference': 1234}
Example #2
0
def test_es_preference_param_no_request():
    """Test that the preference param is not added when not in a request."""
    RecordsSearch.__bases__ = (SpySearch, )

    rs = RecordsSearch()
    new_rs = rs.with_preference_param()
    assert new_rs.exposed_params == {}