def test_recently_used_list_with_overflow():
    rul = RecentlyUsedList(limit=1)
    rul.add('A')
    assert len(rul) == 1
    rul.add('B')
    assert len(rul) == 1

    rul = RecentlyUsedList(limit=10)
    for i in range(1, 20):
        rul.add(str(i))
    assert len(rul) == 10
    assert rul.items == [
        '19', '18', '17', '16', '15', '14', '13', '12', '11', '10'
    ]
 def test_inserted(self):
     r = RecentlyUsedList()
     r.add_used_item('shoes')
     r.add_used_item('clothes')
     r.add_used_item('shoes')
     r.add_used_item('accessories')
     self.assertTrue(len(r.recently_used) > 0)
 def test_duplicates(self):
     r = RecentlyUsedList()
     r.add_used_item('shoes')
     r.add_used_item('clothes')
     r.add_used_item('shoes')
     r.add_used_item('accessories')
     self.assertEquals(len(r.recently_used), 3)
 def test_most_recent(self):
     r = RecentlyUsedList()
     r.add_used_item('shoes')
     r.add_used_item('clothes')
     r.add_used_item('shoes')
     r.add_used_item('accessories')
     self.assertEquals(r.get_recently_used_item(), 'accessories')
def test_recently_used_list():
    rul = RecentlyUsedList()
    assert len(rul) == 0
    rul.add('A')
    assert len(rul) == 1
    rul.add('B')
    assert len(rul) == 2
    assert rul[0] == 'B'
    assert rul[-1] == 'A'
    rul.add('B')
    assert len(rul) == 2
    assert rul[0] == 'B'
    assert rul[1] == 'A'
    rul.add('A')
    assert len(rul) == 2
    assert rul[0] == 'A'
    assert rul[1] == 'B'
    with pytest.raises(TypeError):
        rul.add()
    with pytest.raises(ValueError):
        rul.add('')
    with pytest.raises(ValueError):
        rul.add(True)
    with pytest.raises(ValueError):
        rul.add(object)