@@ -18,8 +18,10 @@ def test_lrudict_defaultbehaviour(self):
1818 # LRU will reorder list, but not remove entries
1919 d .get (count - 2 )
2020 dd .get (count - 2 )
21- assert set (d .keys ()) == set (dd .keys ())
22- assert set (d .values ()) == set (dd .values ())
21+ # assertCountEqual checks that the same elements are present in
22+ # both lists, not just that the lists are of equal count
23+ self .assertCountEqual (set (d .keys ()), set (dd .keys ()))
24+ self .assertCountEqual (set (d .values ()), set (dd .values ()))
2325
2426 def test_lrudict_noitems (self ):
2527 """Edge case: no items in LRU, raises KeyError on assignment"""
@@ -28,16 +30,17 @@ def test_lrudict_noitems(self):
2830 d ["a" ] = 1
2931
3032 def test_lrudict_singleitem (self ):
31- """Only the last added element should be present"""
33+ """Only the last added element should ever be present"""
3234 d = LRUDict (maxsize = 1 )
3335 item_list = range (1 , 100 )
34- assert len (d ) == 0
36+ self . assertEqual ( len (d ), 0 )
3537 for item in item_list :
3638 d [item ] = item
37- assert len (d ) == 1
38- assert d [item ]
39+ self .assertEqual (len (d ), 1 )
40+ self .assertIsNotNone (d [item ])
41+ # Finally, pop the only item and check that the dictionary is empty
3942 d .popitem ()
40- assert len (d ) == 0
43+ self . assertEqual ( len (d ), 0 )
4144
4245 def test_lrudict_multiitem (self ):
4346 """Check that the correctly ordered items are always present"""
@@ -56,5 +59,17 @@ def test_lrudict_multiitem(self):
5659 expected = OrderedDict (
5760 (k , expected [k ]) for k in list (expected .keys ())[- maxsize :]
5861 )
59- assert list (d .keys ()) == list (expected .keys ())
60- assert list (d .values ()) == list (expected .values ())
62+ self .assertListEqual (list (d .keys ()), list (expected .keys ()))
63+ self .assertListEqual (list (d .values ()), list (expected .values ()))
64+
65+ def test_lrudict_invalidkey (self ):
66+ d = LRUDict ()
67+ value = 1
68+ d ["a" ] = value
69+ # Access with valid key
70+ self .assertEqual (d ["a" ], value ) # checks getitem()
71+ self .assertEqual (d .get ("a" ), value ) # checks get()
72+ # Access with invalid key
73+ with self .assertRaises (KeyError ):
74+ _ = d ["b" ] # checks getitem()
75+ self .assertIsNone (d .get ("b" )) # checks get()
0 commit comments