Esempio n. 1
0
def test_queue_adds_request():
    # -- 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_request("utunga", i)

    # -- 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(len(result)):
        assert result[i]["request_time"] != None
        assert result[i]["username"] == "utunga"
        assert result[i]["page"] == i