def OnEditSave(self, event): """ Save word details """ # Create new details dictionary new_nodeDetails = {} new_nodeDetails['lang'] = self.langbox.GetValue() new_nodeDetails['def'] = self.defbox.GetValue() alt_list = [text_item.strip() for text_item in self.altbox.GetValue().split(',')] new_nodeDetails['text'] = alt_list # Set the morpheme to be the first text entry new_nodeDetails['morpheme'] = alt_list[0] # Save the word details cf.editWordDetails(self.current_node, new_nodeDetails) # Refresh the tree self.DisplayTree(self.search_root, self.search_words)
def testEditWordDetails(self): """ Test editing a word details """ chosen_word = self.getWord("horse") orig_wordDets = cf.loadWordDetails(chosen_word) new_wordDets = orig_wordDets.copy() new_wordDets["lang"] = "Elvish" new_wordDets["def"] = "A helpful friend" new_wordDets["text"] = ["horsey", "neigh"] new_wordDets["morpheme"] = "horsey" # Try purposefully giving incorrect details test_wordDets = {} self.assertRaises(cf.EtymExceptWord, cf.editWordDetails, chosen_word, test_wordDets) # Try refreshing the word cf.editWordDetails(chosen_word, orig_wordDets) test_wordDets = cf.loadWordDetails(chosen_word) self.assertEqual(orig_wordDets, test_wordDets) # Try new details cf.editWordDetails(chosen_word, new_wordDets) test_wordDets = cf.loadWordDetails(chosen_word) self.assertEqual(new_wordDets, test_wordDets) self.assertNotEqual(orig_wordDets, test_wordDets)