Skip to content

Commit b3fc29d

Browse files
authored
Merge pull request #12 from ShoshBeer/fix_max_cache_issue
Fix error when sending more than 15 requests
2 parents 5f63143 + 8dd6cd1 commit b3fc29d

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

PyMultiDictionary/_dictionary.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ def _bsoup(self, link: str, encoding: str = 'utf-8') -> Optional['BeautifulSoup'
143143
_CACHED_SOUPS[link] = bs
144144
if len(bs_keys) >= self._max_cached_websites:
145145
# noinspection PyTypeChecker
146-
del _CACHED_SOUPS[bs[0]]
146+
del _CACHED_SOUPS[bs_keys[0]]
147147
return bs
148148

149149
def _save_bsoup(self, link: str, filename: str, encoding: str = 'utf-8') -> None:

test/test_dictionary.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,21 @@ def test_antonym(self) -> None:
268268
# Test invalid dictionary
269269
# self.assertRaises(InvalidDictionary, lambda: d.antonym('es', 'word', dictionary=DICT_SYNONYMCOM))
270270

271+
def test_overwrite_cache(self) -> None:
272+
"""
273+
Test request with maxed out cache.
274+
"""
275+
d = self._get_dictionary('words', 'are', 'super', 'fun')
276+
d.set_words_lang('en')
277+
d._max_cached_websites = 3
278+
279+
self.assertEqual(len(d.get_synonyms()), 4)
280+
self.assertEqual(len(d.get_synonyms(dictionary=DICT_EDUCALINGO)), 4)
281+
self.assertEqual(len(d.get_synonyms(dictionary=DICT_SYNONYMCOM)), 4)
282+
self.assertEqual(len(d.get_synonyms(dictionary=DICT_THESAURUS)), 4)
283+
self.assertEqual(len(d.get_meanings(dictionary=DICT_WORDNET)), 4)
284+
285+
271286
def test_language_name(self) -> None:
272287
"""
273288
Test language name.

0 commit comments

Comments
 (0)