Esempio n. 1
0
def test_queue_adds_requests_for_username():
    # -- ARRANGE --
    # variables used to test
    no_to_add = 5

    # set up result
    result = []

    def add_result(key, value):
        result.append(value)

    # create a mock server
    couchdb.client.Database.__setitem__ = Mock()
    couchdb.client.Database.__setitem__.side_effect = add_result

    # set up target
    request_queue = RequestQueue("http://127.0.0.1:5984", "hashmapd")

    # -- ACT --
    for i in xrange(no_to_add):
        request_queue.add_download_requests_for_username("utunga")

    # -- ASSERT --
    # ensure that the front of the queue remains unchanged, the back has been incremented, and the new values have been added
    for i in xrange(no_to_add):
        for j in xrange(request_queue.n_pages):
            assert result[request_queue.n_pages * i + j]["request_time"] != None
            assert result[request_queue.n_pages * i + j]["username"] == "utunga"
            assert result[request_queue.n_pages * i + j]["page"] == (j + 1)