def test_extract_sources(self):
        d = Document()
        d.text = 'Fred Astair did something. He also did something else.'

        u = Utterance()
        u.entity = self.fx.EntityData.zuma
        u.document = d

        self.ex.extract_sources(d)
        self.assertEqual(['Jacob Zuma'], [s.person.name for s in d.sources])
    def test_extract_sources(self):
        d = Document.query.get(self.fx.DocumentData.simple.id)
        d.text = 'Fred Astair did something. He also did something else.'

        u = Utterance()
        u.entity = Entity.query.get(self.fx.EntityData.zuma.id)
        u.document = d
        u.quote = 'a quote'

        self.ex.extract_sources(d)
        self.assertEqual(['Jacob Zuma'], [s.person.name for s in d.sources])
    def test_add_utterance(self):
        doc = Document()
        doc.text = 'And Fred said "Hello" to everyone.'
        
        u = Utterance()
        u.entity = Entity()
        u.entity.group = 'person'
        u.entity.name = 'Fred'
        u.quote = 'Hello'

        self.assertTrue(doc.add_utterance(u))
        self.assertTrue(u in doc.utterances)

        # can't add twice
        self.assertFalse(doc.add_utterance(u))
        self.assertEqual(1, len(doc.utterances))
Exemple #4
0
    def test_add_utterance(self):
        doc = self.doc
        doc.text = 'And Fred said "Hello" to everyone.'

        u = Utterance()
        u.entity = Entity()
        u.entity.group = 'person'
        u.entity.name = u'Fred'
        u.quote = u'Hello'

        self.assertTrue(doc.add_utterance(u))
        self.assertTrue(u in doc.utterances)

        # can't add twice
        self.assertFalse(doc.add_utterance(u))
        self.assertEqual(1, len(doc.utterances))
    def test_match_people(self):
        d = Document.query.get(self.fx.DocumentData.simple.id)
        d.text = 'Fred Astair did something. He also did something else.'

        u = Utterance()
        u.entity = Entity()
        u.entity.group = 'people'
        u.entity.name = 'Jacob Zume'  # will fix to zuma
        u.quote = 'a quote'
        u.document = d

        u2 = Utterance()
        u2.entity = Entity()
        u2.entity.group = 'people'
        u2.entity.name = 'Jacob Zooma'  # too different
        u2.quote = 'a quote'
        u2.document = d

        self.ex.discover_people(d)
        self.assertEqual('Jacob Zuma', u.entity.person.name)
        self.assertIsNone(u2.entity.person)
Exemple #6
0
    def test_delete_document(self):
        doc = Document()
        doc.text = 'And Fred said "Hello" to everyone.'
        doc.published_at = datetime.datetime.utcnow()
        
        u = Utterance()
        u.entity = Entity()
        u.entity.group = 'person'
        u.entity.name = 'Fred'
        u.quote = 'Hello'
        self.assertTrue(doc.add_utterance(u))

        de = DocumentEntity()
        de.document = doc
        de.entity = Entity.query.first()
        de.relevance = 0.5

        self.db.session.add(doc)
        self.db.session.commit()

        self.db.session.delete(doc)
        self.db.session.commit()
Exemple #7
0
    def test_delete_document(self):
        doc = self.doc
        doc.text = u'And Fred said "Hello" to everyone.'
        doc.published_at = datetime.datetime.utcnow()

        u = Utterance()
        u.entity = Entity()
        u.entity.group = 'person'
        u.entity.name = u'Fred'
        u.quote = u'Hello'
        self.assertTrue(doc.add_utterance(u))

        de = DocumentEntity()
        de.document = doc
        de.relevance = 0.5
        de.entity = Entity.query.first()

        self.db.session.add(doc)
        self.db.session.commit()

        self.db.session.delete(doc)
        self.db.session.commit()
Exemple #8
0
    def test_add_utterance_update_offset(self):
        doc = self.doc
        doc.text = u'And Fred said "Hello" to everyone.'

        u = Utterance()
        u.entity = Entity()
        u.entity.group = 'person'
        u.entity.name = u'Fred'
        u.quote = u'Hello'
        self.assertTrue(doc.add_utterance(u))

        u2 = Utterance()
        u2.entity = Entity()
        u2.entity.group = u'person'
        u2.entity.name = u'Fred'
        u2.quote = u'Hello'
        u2.offset = 10
        u2.length = 5

        self.assertTrue(doc.add_utterance(u2))
        self.assertEqual(10, u.offset)
        self.assertEqual(5, u.length)

        self.assertFalse(doc.add_utterance(u2))
Exemple #9
0
    def test_add_utterance_similar(self):
        doc = self.doc
        doc.text = 'And Fred said "Hello there guys," to everyone.'

        u = Utterance()
        u.entity = Entity()
        u.entity.group = 'person'
        u.entity.name = u'Fred'
        u.quote = u'Hello there guys'

        self.assertTrue(doc.add_utterance(u))
        self.assertTrue(u in doc.utterances)

        # can't add similar quotations twice
        u2 = Utterance()
        u2.entity = Entity()
        u2.entity.group = 'person'
        u2.entity.name = u'Fred'
        u2.quote = u'\"Hello there guys,\" ...'

        self.assertFalse(doc.add_utterance(u2))
        self.assertEqual(1, len(doc.utterances))
Exemple #10
0
    def test_add_utterance_update_offset(self):
        doc = Document()
        doc.text = 'And Fred said "Hello" to everyone.'
        
        u = Utterance()
        u.entity = Entity()
        u.entity.group = 'person'
        u.entity.name = 'Fred'
        u.quote = 'Hello'
        self.assertTrue(doc.add_utterance(u))

        u2 = Utterance()
        u2.entity = Entity()
        u2.entity.group = 'person'
        u2.entity.name = 'Fred'
        u2.quote = 'Hello'
        u2.offset = 10
        u2.length = 5

        self.assertTrue(doc.add_utterance(u2))
        self.assertEqual(10, u.offset)
        self.assertEqual(5, u.length)

        self.assertFalse(doc.add_utterance(u2))
Exemple #11
0
    def test_add_utterance_similar(self):
        doc = Document()
        doc.text = 'And Fred said "Hello there guys," to everyone.'
        
        u = Utterance()
        u.entity = Entity()
        u.entity.group = 'person'
        u.entity.name = 'Fred'
        u.quote = 'Hello there guys'

        self.assertTrue(doc.add_utterance(u))
        self.assertTrue(u in doc.utterances)

        # can't add similar quotations twice
        u2 = Utterance()
        u2.entity = Entity()
        u2.entity.group = 'person'
        u2.entity.name = 'Fred'
        u2.quote = '\"Hello there guys,\" ...'

        self.assertFalse(doc.add_utterance(u2))
        self.assertEqual(1, len(doc.utterances))