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)
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])