Exemple #1
0
def del_user(r):
    # user register
    user_id1 = str('aaaaaaaa-aaaa-aaaa-aaaa-000000000001')
    user_id2 = str('zzzzzzzz-zzzz-zzzz-zzzz-000000000000')
    goods_ids = ['ITEM-{}'.format(str(x)) for x in xrange(1, 100)]
    for goods_id in goods_ids:
        r.register(goods_id, random.choice(tags))
    r.like(user_id1, goods_ids)
    r.like(user_id2, goods_ids)
    for goods_id in goods_ids:
        r.update(goods_id)

    # remove user1
    r.remove_user(user_id1)

    # Test removed user1 from index
    for x in xrange(5):
        goods_id = random.choice(goods_ids)
        tag = r.repository.get_goods_tag(goods_id)
        key = Repository.get_key_index_goods_user_like_history(tag, goods_id)
        users = r.repository.client.lrange(key, 0, -1)
        assert user_id1 not in users
        assert user_id2 in users

    # remove user2
    r.remove_user(user_id2)

    # Test removed user2 from index
    for x in xrange(5):
        goods_id = random.choice(goods_ids)
        tag = r.repository.get_goods_tag(goods_id)
        key = Repository.get_key_index_goods_user_like_history(tag, goods_id)
        users = r.repository.client.lrange(key, 0, -1)
        assert user_id1 not in users
        assert user_id2 not in users
def del_user(r):
    # user register
    user_id1 = str('aaaaaaaa-aaaa-aaaa-aaaa-000000000001')
    user_id2 = str('zzzzzzzz-zzzz-zzzz-zzzz-000000000000')
    goods_ids = ['ITEM-{}'.format(str(x)) for x in xrange(1, 100)]
    for goods_id in goods_ids:
        r.register(goods_id, random.choice(tags))
    r.like(user_id1, goods_ids)
    r.like(user_id2, goods_ids)
    for goods_id in goods_ids:
        r.update(goods_id)

    # remove user1
    r.remove_user(user_id1)

    # Test removed user1 from index
    for x in xrange(5):
        goods_id = random.choice(goods_ids)
        tag = r.repository.get_goods_tag(goods_id)
        key = Repository.get_key_index_goods_user_like_history(tag, goods_id)
        users = r.repository.client.lrange(key, 0, -1)
        assert user_id1 not in users
        assert user_id2 in users

    # remove user2
    r.remove_user(user_id2)

    # Test removed user2 from index
    for x in xrange(5):
        goods_id = random.choice(goods_ids)
        tag = r.repository.get_goods_tag(goods_id)
        key = Repository.get_key_index_goods_user_like_history(tag, goods_id)
        users = r.repository.client.lrange(key, 0, -1)
        assert user_id1 not in users
        assert user_id2 not in users
Exemple #3
0
def get_all(r):
    # all registered goods ids: about 20sec
    r.get_all_goods_ids()

    # all user ids: about 20sec
    keys = r.repository.get_all_user_ids()
    if keys:
        Repository.get_user_and_key_from_redis_key(keys[0])
def get_all(r):
    # all registered goods ids: about 20sec
    r.get_all_goods_ids()

    # all user ids: about 20sec
    keys = r.repository.get_all_user_ids()
    if keys:
        Repository.get_user_and_key_from_redis_key(keys[0])
Exemple #5
0
def test_lock():
    settings = {
        'expire': 3600 * 24 * 100,
        'redis': {
            'host': 'localhost',
            'port': 6379,
            'db': 12
        },
        # recommendation engine settings
        'recommendation': {
            'update_interval_sec': 4,
        },
    }

    # register goods
    r = Recommender(settings=settings)
    goods_id = 1122
    tag = random.choice(tags)
    r.register(goods_id, tag)

    # do_lock and expire test[expire 4sec]
    r.repository.lock(goods_id)
    key = Repository.get_key_goods_mutex(tag, goods_id)
    assert r.repository.client.ttl(key) == settings.get('recommendation').get(
        'update_interval_sec')
    assert r.repository.is_lock(goods_id)
    time.sleep(1)
    assert r.repository.is_lock(goods_id)
    time.sleep(4)
    assert r.repository.is_lock(goods_id) is False
def test_lock():
    settings = {
        'expire': 3600 * 24 * 100,
        'redis': {
            'host': 'localhost',
            'port': 6379,
            'db': 12
        },
        # recommendation engine settings
        'recommendation': {
            'update_interval_sec': 4,
        },
    }

    # register goods
    r = Recommender(settings=settings)
    goods_id = 1122
    tag = random.choice(tags)
    r.register(goods_id, tag)

    # do_lock and expire test[expire 4sec]
    r.repository.lock(goods_id)
    key = Repository.get_key_goods_mutex(tag, goods_id)
    assert r.repository.client.ttl(key) == settings.get('recommendation').get('update_interval_sec')
    assert r.repository.is_lock(goods_id)
    time.sleep(1)
    assert r.repository.is_lock(goods_id)
    time.sleep(4)
    assert r.repository.is_lock(goods_id) is False
Exemple #7
0
def test_trim():
    settings = {
        'expire': 3600 * 24 * 100,
        'redis': {
            'host': 'localhost',
            'port': 6379,
            'db': 12
        },
        'recommendation': {
            'update_interval_sec': 60,
            'search_depth': 10,
            'max_history': 30,
        },
    }
    r = Recommender(settings=settings)

    key = "hogehoge:list"
    cli = r.repository.client
    l = range(1, 1001)
    # initial
    cli.delete(key)

    # set list
    for x in l:
        cli.rpush(key, x)

    # trim
    assert cli.llen(key) == 1000
    r.repository.trim(key, 200, hardly_ever=False)
    assert cli.llen(key) == 200

    # user register
    user_id = str('aaaaaaaa-aaaa-aaaa-aaaa-000000000005')
    goods_id = 'ITEM-{}'.format(str(215))
    tag = random.choice(tags)
    r.register(goods_id, tag)
    _max = 200
    for x in xrange(_max):
        r.like(user_id, [goods_id])
    r.update(goods_id)

    key = Repository.get_key_user_like_history(tag, user_id)
    print "user hist", r.repository.client.llen(key)
    assert r.repository.client.llen(key) < _max
    key = Repository.get_key_index_goods_user_like_history(tag, goods_id)
    print "index", r.repository.client.llen(key)
    assert "index", r.repository.client.llen(key) < _max
def test_trim():
    settings = {
        'expire': 3600 * 24 * 100,
        'redis': {
            'host': 'localhost',
            'port': 6379,
            'db': 12
        },
        'recommendation': {
            'update_interval_sec': 60,
            'search_depth': 10,
            'max_history': 30,
        },
    }
    r = Recommender(settings=settings)

    key = "hogehoge:list"
    cli = r.repository.client
    l = range(1, 1001)
    # initial
    cli.delete(key)

    # set list
    for x in l:
        cli.rpush(key, x)

    # trim
    assert cli.llen(key) == 1000
    r.repository.trim(key, 200, hardly_ever=False)
    assert cli.llen(key) == 200

    # user register
    user_id = str('aaaaaaaa-aaaa-aaaa-aaaa-000000000005')
    goods_id = 'ITEM-{}'.format(str(215))
    tag = random.choice(tags)
    r.register(goods_id, tag)
    _max = 200
    for x in xrange(_max):
        r.like(user_id, [goods_id])
    r.update(goods_id)

    key = Repository.get_key_user_like_history(tag, user_id)
    print "user hist", r.repository.client.llen(key)
    assert r.repository.client.llen(key) < _max
    key = Repository.get_key_index_goods_user_like_history(tag, goods_id)
    print "index", r.repository.client.llen(key)
    assert "index", r.repository.client.llen(key) < _max