Пример #1
0
 def test_document_with_facet(self):
     doc = tantivy.Document()
     facet = tantivy.Facet.from_string("/europe/france")
     doc.add_facet("facet", facet)
     assert doc["facet"][0].to_path() == ["europe", "france"]
     doc = tantivy.Document()
     facet = tantivy.Facet.from_string("/asia\\/oceania/fiji")
     doc.add_facet("facet", facet)
     assert doc["facet"][0].to_path() == ["asia/oceania", "fiji"]
     assert doc["facet"][0].to_path_str() == "/asia\\/oceania/fiji"
     assert repr(doc["facet"][0]) == "Facet(/asia\\/oceania/fiji)"
     doc = tantivy.Document(facet=facet)
     assert doc["facet"][0].to_path() == ["asia/oceania", "fiji"]
Пример #2
0
 def test_document(self):
     doc = tantivy.Document(name="Bill", reference=[1, 2])
     assert doc["reference"] == [1, 2]
     assert doc["name"] == ["Bill"]
     assert doc.get_first("name") == "Bill"
     assert doc.get_first("reference") == 1
     assert doc.to_dict() == {"name": ["Bill"], "reference": [1, 2]}
Пример #3
0
        def add_event(self, column_id, event, room_id):
            doc = tantivy.Document()

            room_path = "/{}".format(sanitize_room_id(room_id))

            room_facet = tantivy.Facet.from_string(room_path)

            doc.add_unsigned(self.column_field, column_id)
            doc.add_facet(self.room_field, room_facet)
            doc.add_date(
                self.date_field,
                datetime.datetime.fromtimestamp(event.server_timestamp / 1000),
            )
            doc.add_unsigned(self.timestamp_field, event.server_timestamp)

            if isinstance(event, RoomMessageText):
                doc.add_text(self.body_field, event.body)
            elif isinstance(event, (RoomMessageMedia, RoomEncryptedMedia)):
                doc.add_text(self.body_field, event.body)
            elif isinstance(event, RoomNameEvent):
                doc.add_text(self.name_field, event.name)
            elif isinstance(event, RoomTopicEvent):
                doc.add_text(self.topic_field, event.topic)
            else:
                raise ValueError("Invalid event passed.")

            self.writer.add_document(doc)
Пример #4
0
 def test_document_error(self):
     with pytest.raises(ValueError):
         tantivy.Document(name={})
Пример #5
0
 def test_document_repr(self):
     doc = tantivy.Document(name="Bill", reference=[1, 2])
     assert repr(doc) == "Document(name=[Bill],reference=[1,2])"
Пример #6
0
    def test_document_with_date(self):
        import datetime

        date = datetime.datetime(2019, 8, 12, 13, 0, 0)
        doc = tantivy.Document(name="Bill", date=date)
        assert doc["date"][0] == date
Пример #7
0
 def test_document_repr_utf8(self):
     doc = tantivy.Document(name="野菜食べないとやばい", reference=[1, 2])
     assert repr(doc) == "Document(name=[野菜食べないとやばい],reference=[1,2])"