mgw / tests /test_thesaurus_wordnet.py
alessandro trinca tornidor
feat: get_current_info_wordnet(True) now will preloads wordnet corpus
9fbe321
raw
history blame
2.53 kB
import json
import unittest
from tests import EVENTS_FOLDER
def assert_get_synsets_by_word_and_language(cls, q):
from my_ghost_writer.thesaurus import get_synsets_by_word_and_language
response = get_synsets_by_word_and_language(q, lang="eng")
cls.assertEqual(list(response.keys()), ['word', 'results'])
cls.assertEqual(response["word"], q)
cls.assertIsInstance(response["results"], list)
results = response["results"]
for result in results:
for k, v in result.items():
cls.assertIsInstance(k, str)
try:
if k == "definition":
cls.assertIsInstance(v, str)
else:
cls.assertIsInstance(v, list)
except AssertionError as ae:
print(k, v, ae)
for s in v:
cls.assertIsInstance(s, str)
with open(EVENTS_FOLDER / f"expected_get_synsets_by_word_and_language_{q}.json", "r") as src:
# json.dump(response, src, indent=4)
expected_response = json.load(src)
cls.assertEqual(response, expected_response)
class TestThesaurusWordnet(unittest.TestCase):
def test_get_current_info_wordnet(self):
from my_ghost_writer.thesaurus import get_current_info_wordnet
current_info = get_current_info_wordnet(False)
self.assertEqual(list(current_info.keys()), ['languages', 'version', 'preload_wordnet'])
languages = current_info["languages"]
self.assertIn("eng", languages)
self.assertIsInstance(languages, list)
self.assertFalse(current_info["preload_wordnet"])
self.assertIsInstance(current_info["version"], str)
self.assertGreaterEqual(len(languages), 1)
current_info = get_current_info_wordnet(True)
self.assertEqual(list(current_info.keys()), ['languages', 'version', 'preload_wordnet'])
languages = current_info["languages"]
self.assertIn("eng", languages)
self.assertIsInstance(languages, list)
self.assertTrue(current_info["preload_wordnet"])
self.assertIsInstance(current_info["version"], str)
self.assertGreaterEqual(len(languages), 1)
def test_get_synsets_by_word_and_language(self):
assert_get_synsets_by_word_and_language(self, "dog")
assert_get_synsets_by_word_and_language(self, "look")
assert_get_synsets_by_word_and_language(self, "power")
assert_get_synsets_by_word_and_language(self, "term")
if __name__ == '__main__':
unittest.main()