def test_enqueue_one():
    '''Can successfully enqueue into a queue'''
    q = Queue()
    q.enqueue('Hello')
    expected = 'Hello'
    actual = q.peek()
    assert expected == actual
def test_peek():
    '''Can successfully peek into a queue, seeing the expected value'''
    q = Queue()
    q.enqueue(1)
    q.enqueue(2)
    actual = q.peek()
    expected = 1
    assert actual == expected
def test_dequeue_one():
    '''Can successfully dequeue out of a queue the expected value'''
    q = Queue()
    q.enqueue('A')
    q.enqueue('B')
    q.enqueue('C')
    q.dequeue()
    expected = 'B'
    actual = q.peek()
    assert expected == actual
def test_enqueue_multiple():
    '''Can successfully enqueue multiple values into a queue'''
    q = Queue()
    q.enqueue('A')
    q.enqueue('B')
    q.enqueue('C')
    expected = 'A'
    actual = q.front.value
    assert expected == actual
def test_dequeue_all():
    '''Can successfully empty a queue after multiple dequeues'''
    q = Queue()
    q.enqueue('A')
    q.enqueue('B')
    q.enqueue('C')
    q.rear.dequeue()
    q.rear.dequeue()
    q.front.dequeue()
    expected = None
    actual = q.front.value
    assert expected == actual
def test_Queue_empty():
    '''Can successfully instantiate an empty queue'''
    q = Queue()
    actual = q.peek()
    expected = None
    assert actual == expected