File size: 2,531 Bytes
e0b1feb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91172b4
e0b1feb
 
 
 
 
 
 
 
9fbe321
 
e0b1feb
 
 
9fbe321
 
 
 
 
 
 
 
 
 
e0b1feb
 
 
 
 
 
 
 
91172b4
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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()