def test_add_utterance(self): corpus1 = Corpus(utterances=[ Utterance(id="0", text="hello world", speaker=Speaker(id="alice")), Utterance(id="1", text="my name is bob", speaker=Speaker( id="bob")), Utterance(id="2", text="this is a test", speaker=Speaker(id="charlie"), meta={ 'hey': 'jude', 'hello': 'world' }), ]) utts = [ Utterance(id="1", text="i like pie", speaker=Speaker(id="delta")), Utterance(id="2", text="this is a test", speaker=Speaker(id="charlie"), meta={ 'hello': 'food', 'what': 'a mood' }), Utterance(id="5", text="goodbye", speaker=Speaker(id="foxtrot")), ] added = corpus1.add_utterances(utts) self.assertEqual(len(list(added.iter_utterances())), 4) self.assertEqual(len(added.get_utterance("2").meta), 3) self.assertEqual(added.get_utterance("2").meta['hello'], 'food')
def test_corpus_merge_add(self): corpus1 = Corpus(utterances=[ Utterance(id="0", text="hello world", user=User(id="alice")), Utterance(id="1", text="my name is bob", user=User(id="bob")), Utterance(id="2", text="this is a test", user=User(id="charlie")), ]) corpus1.get_utterance("0").meta['foo'] = 'bar' corpus1.get_utterance("1").meta['foo'] = 'bar2' corpus1.get_utterance("2").meta['hey'] = 'jude' # test that adding separately initialized utterances with new metadata updates Index new_utt = Utterance(id="4", text="hello world", user=User(id="alice", meta={'donkey': 'kong'}), meta={'new': 'meta'}) new_corpus = corpus1.add_utterances([new_utt]) self.assertTrue('new' in new_corpus.meta_index.utterances_index) self.assertTrue('donkey' in new_corpus.meta_index.users_index)