|
1 | 1 | import os |
| 2 | +import random |
2 | 3 | from typing import Any, Generator |
3 | 4 |
|
4 | 5 | import pytest |
@@ -31,45 +32,56 @@ def pytest_collection_modifyitems(config: Any, items: Any) -> None: |
31 | 32 |
|
32 | 33 |
|
33 | 34 | @pytest.fixture(scope="package") |
34 | | -def aura_ds_instance() -> Generator[Any, None, None]: |
| 35 | +def aura_db_instance() -> Generator[Any, None, None]: |
35 | 36 | if os.environ.get("AURA_API_CLIENT_ID", None) is None: |
36 | 37 | yield None |
37 | 38 | return |
38 | 39 |
|
39 | | - from tests.gds_helper import aura_api, create_aurads_instance |
| 40 | + from tests.gds_helper import aura_api, create_auradb_instance |
40 | 41 |
|
41 | 42 | api = aura_api() |
42 | | - id, dbms_connection_info = create_aurads_instance(api) |
| 43 | + dbms_connection_info = create_auradb_instance(api) |
43 | 44 |
|
| 45 | + old_uri = os.environ.get("NEO4J_URI", "") |
44 | 46 | # setting as environment variables to run notebooks with this connection |
45 | 47 | os.environ["NEO4J_URI"] = dbms_connection_info.get_uri() |
46 | 48 | assert isinstance(dbms_connection_info.username, str) |
47 | 49 | os.environ["NEO4J_USER"] = dbms_connection_info.username |
48 | 50 | assert isinstance(dbms_connection_info.password, str) |
49 | 51 | os.environ["NEO4J_PASSWORD"] = dbms_connection_info.password |
| 52 | + old_instance = os.environ.get("AURA_INSTANCEID", "") |
| 53 | + if dbms_connection_info.aura_instance_id: |
| 54 | + os.environ["AURA_INSTANCEID"] = dbms_connection_info.aura_instance_id |
| 55 | + |
50 | 56 | yield dbms_connection_info |
51 | 57 |
|
52 | 58 | # Clear Neo4j_URI after test (rerun should create a new instance) |
53 | | - os.environ["NEO4J_URI"] = "" |
54 | | - api.delete_instance(id) |
| 59 | + os.environ["NEO4J_URI"] = old_uri |
| 60 | + os.environ["AURA_INSTANCEID"] = old_instance |
| 61 | + assert dbms_connection_info.aura_instance_id is not None |
| 62 | + api.delete_instance(dbms_connection_info.aura_instance_id) |
55 | 63 |
|
56 | 64 |
|
57 | 65 | @pytest.fixture(scope="package") |
58 | | -def gds(aura_ds_instance: Any) -> Generator[Any, None, None]: |
59 | | - from graphdatascience import GraphDataScience |
| 66 | +def gds(aura_db_instance: Any) -> Generator[Any, None, None]: |
| 67 | + from graphdatascience.session import SessionMemory |
60 | 68 |
|
61 | | - from tests.gds_helper import connect_to_plugin_gds |
| 69 | + from tests.gds_helper import connect_to_plugin_gds, gds_sessions |
62 | 70 |
|
63 | | - if aura_ds_instance: |
64 | | - yield GraphDataScience( |
65 | | - endpoint=aura_ds_instance.uri, |
66 | | - auth=(aura_ds_instance.username, aura_ds_instance.password), |
67 | | - aura_ds=True, |
68 | | - database="neo4j", |
| 71 | + if aura_db_instance: |
| 72 | + sessions = gds_sessions() |
| 73 | + |
| 74 | + gds = sessions.get_or_create( |
| 75 | + f"neo4j-viz-ci-{os.environ.get('GITHUB_RUN_ID', random.randint(0, 10**6))}", |
| 76 | + memory=SessionMemory.m_2GB, |
| 77 | + db_connection=aura_db_instance, |
69 | 78 | ) |
| 79 | + |
| 80 | + yield gds |
| 81 | + gds.delete() |
70 | 82 | else: |
71 | | - NEO4J_URI = os.environ.get("NEO4J_URI", "neo4j://localhost:7687") |
72 | | - gds = connect_to_plugin_gds(NEO4J_URI) |
| 83 | + NEO4J_URI = os.environ["NEO4J_URI"] |
| 84 | + gds = connect_to_plugin_gds(NEO4J_URI) # type: ignore |
73 | 85 | yield gds |
74 | 86 | gds.close() |
75 | 87 |
|
|
0 commit comments