memgraph/tests/e2e/text_search/common.py

85 lines
2.7 KiB
Python
Raw Normal View History

2024-01-15 16:38:45 +08:00
# Copyright 2023 Memgraph Ltd.
#
# Use of this software is governed by the Business Source License
# included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
# License, and you may not use this file except in compliance with the Business Source License.
#
# As of the Change Date specified in that file, in accordance with
# the Business Source License, use of this software will be governed
# by the Apache License, Version 2.0, included in the file
# licenses/APL.txt.
import typing
import mgclient
import pytest
from gqlalchemy import Memgraph
def execute_and_fetch_all(cursor: mgclient.Cursor, query: str, params: dict = {}) -> typing.List[tuple]:
cursor.execute(query, params)
return cursor.fetchall()
@pytest.fixture
def connect(**kwargs) -> mgclient.Connection:
connection = mgclient.connect(host="localhost", port=7687, **kwargs)
connection.autocommit = True
cursor = connection.cursor()
2024-01-22 20:45:59 +08:00
execute_and_fetch_all(cursor, """USE DATABASE memgraph""")
2024-01-15 16:38:45 +08:00
try:
2024-01-22 20:45:59 +08:00
execute_and_fetch_all(cursor, """DROP DATABASE clean""")
2024-01-15 16:38:45 +08:00
except:
pass
2024-01-22 20:45:59 +08:00
execute_and_fetch_all(cursor, """MATCH (n) DETACH DELETE n""")
2024-01-15 16:38:45 +08:00
yield connection
@pytest.fixture
def memgraph(**kwargs) -> Memgraph:
memgraph = Memgraph()
yield memgraph
memgraph.drop_database()
memgraph.drop_indexes()
2024-01-16 03:30:08 +08:00
@pytest.fixture
def memgraph_with_text_indexed_data(**kwargs) -> Memgraph:
memgraph = Memgraph()
2024-01-22 17:28:29 +08:00
memgraph.execute(
2024-01-22 20:45:59 +08:00
"""CREATE (:Document {title: "Rules2024", version: 1, fulltext: "random fulltext", date: date("2023-11-14")});"""
2024-01-22 17:28:29 +08:00
)
memgraph.execute(
2024-01-22 20:45:59 +08:00
"""CREATE (:Document:Revision {title: "Rules2024", version: 2, fulltext: "random words", date: date("2023-12-15")});"""
2024-01-22 17:28:29 +08:00
)
2024-01-22 20:45:59 +08:00
memgraph.execute("""CREATE (:Revision {title: "OperationSchema", version: 3, date: date("2023-10-01")});""")
memgraph.execute("""CREATE TEXT INDEX complianceDocuments ON :Document;""")
2024-01-16 03:30:08 +08:00
yield memgraph
2024-01-22 20:45:59 +08:00
memgraph.execute("""DROP TEXT INDEX complianceDocuments;""")
memgraph.drop_database()
memgraph.drop_indexes()
@pytest.fixture
2024-01-18 08:51:28 +08:00
def memgraph_with_mixed_data(**kwargs) -> Memgraph:
memgraph = Memgraph()
2024-01-22 17:28:29 +08:00
memgraph.execute(
2024-01-22 20:45:59 +08:00
"""CREATE (:Document:Revision {title: "Rules2024", version: 1, date: date("2023-11-14"), contents: "Lorem ipsum dolor sit amet"});"""
2024-01-22 17:28:29 +08:00
)
memgraph.execute(
2024-01-22 20:45:59 +08:00
"""CREATE (:Revision {title: "Rules2024", version: 2, date: date("2023-12-15"), contents: "consectetur adipiscing elit"});"""
2024-01-22 17:28:29 +08:00
)
2024-01-22 20:45:59 +08:00
memgraph.execute("""CREATE TEXT INDEX complianceDocuments ON :Document;""")
yield memgraph
2024-01-22 20:45:59 +08:00
memgraph.execute("""DROP TEXT INDEX complianceDocuments;""")
2024-01-16 03:30:08 +08:00
memgraph.drop_database()
memgraph.drop_indexes()