-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathconftest.py
More file actions
53 lines (40 loc) · 1.68 KB
/
conftest.py
File metadata and controls
53 lines (40 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import os
from typing import Any, Generator
import pytest
def pytest_addoption(parser: Any) -> None:
parser.addoption(
"--include-neo4j-and-gds",
action="store_true",
help="include tests requiring a Neo4j instance with GDS running",
)
def pytest_collection_modifyitems(config: Any, items: Any) -> None:
if not config.getoption("--include-neo4j-and-gds"):
skip = pytest.mark.skip(reason="skipping since requiring Neo4j instance with GDS running")
for item in items:
if "requires_neo4j_and_gds" in item.keywords:
item.add_marker(skip)
@pytest.fixture(scope="package")
def gds() -> Generator[Any, None, None]:
from gds_helper import aura_api, connect_to_plugin_gds, create_aurads_instance
from graphdatascience import GraphDataScience
NEO4J_URI = os.environ.get("NEO4J_URI")
if NEO4J_URI:
gds = connect_to_plugin_gds(NEO4J_URI)
yield gds
gds.close()
else:
api = aura_api()
id, dbms_connection_info = create_aurads_instance(api)
# setting as environment variables to run notebooks with this connection
os.environ["NEO4J_URI"] = dbms_connection_info.uri
os.environ["NEO4J_USER"] = dbms_connection_info.username
os.environ["NEO4J_PASSWORD"] = dbms_connection_info.password
yield GraphDataScience(
endpoint=dbms_connection_info.uri,
auth=(dbms_connection_info.username, dbms_connection_info.password),
aura_ds=True,
database="neo4j",
)
# Clear Neo4j_URI after test (rerun should create a new instance)
os.environ["NEO4J_URI"] = ""
api.delete_instance(id)