Example #1
0
 def OnNewTree(self, event):
     """ Create a new tree """
     # Create a tree with some default values
     tree_dets = {'text': ['NEW ROOT'], 'morpheme': 'NEW ROOT', 'lang':
                  'UNKNOWN', 'def': 'Change me!', 'tag': 'tree'}
     word_dets = {'text': ['NEW WORD'], 'morpheme': 'NEW WORD', 'lang':
                  'UNKNOWN', 'def': 'Change me!'}
     new_word = cf.createWord(word_dets)
     new_tree = cf.addTree(self.words_tree, tree_dets, [new_word])
     # Refresh the tree
     self.search_root = new_tree
     self.search_words = None
     self.DisplayTree(self.search_root, self.search_words)
Example #2
0
    def testAddTree(self):
        """ Test adding a tree """
        # Create a test word to attach to the new tree
        word_dets = {
            "lang": "English",
            "text": ["banana", "pineapple"],
            "morpheme": "banana",
            "def": "A fruity thing",
            "tag": "word",
        }
        new_word = cf.createWord(word_dets)
        new_word_details = cf.loadWordDetails(new_word)
        self.assertEqual(word_dets, new_word_details)
        # Create the new tree
        db = self.getDB()
        tree_dets = {"lang": "PIE", "text": ["bane"], "morpheme": "bane", "def": "Some fruit", "tag": "tree"}
        cf.addTree(db, tree_dets, [new_word])
        # Test that it was created
        num_trees, matched_words = cf.searchDB(db, "banana")
        search_word = matched_words[0][1]
        search_root = matched_words[0][0]
        search_root_dets = cf.loadWordDetails(search_root)
        self.assertEqual(search_word, new_word)
        self.assertEqual(search_root_dets["lang"], "PIE")
        self.assertEqual(search_root_dets["def"], "Some fruit")
        self.assertEqual(search_root_dets["morpheme"], "bane")
        self.assertEqual(search_root_dets["text"], ["bane"])

        # Okay, now test some bad input
        # second arg not a list
        self.assertRaises(cf.EtymExceptWord, cf.addTree, db, tree_dets, new_word)
        # No word given
        self.assertRaises(cf.EtymExceptWord, cf.addTree, db, tree_dets, [None])
        self.assertRaises(cf.EtymExceptWord, cf.addTree, db, tree_dets, [])
        # Invalid db
        self.assertRaises(cf.EtymExceptDB, cf.addTree, None, tree_dets, [new_word])
        # Bad tree details
        tree_dets = {"lang": "PIE", "text": "bane", "morpheme": "bane", "tag": "tree"}
        self.assertRaises(cf.EtymExceptWord, cf.addTree, db, tree_dets, [new_word])