|
14 | 14 | # limitations under the License.
|
15 | 15 | from __future__ import annotations
|
16 | 16 |
|
| 17 | +from typing import Tuple |
17 | 18 | from unittest import mock
|
18 | 19 | from unittest.mock import MagicMock, Mock
|
19 | 20 |
|
@@ -331,3 +332,45 @@ async def test_run_is_version_5_23_or_above(_: Mock) -> None:
|
331 | 332 | parameters_=parameters_,
|
332 | 333 | database_=None,
|
333 | 334 | )
|
| 335 | + |
| 336 | + |
| 337 | +@pytest.mark.parametrize( |
| 338 | + "description, version, version_tuple, is_5_23_or_above", |
| 339 | + [ |
| 340 | + ("SemVer, < 5.23", "5.22.0", (5, 22, 0), False), |
| 341 | + ("SemVer, > 5.23", "5.24.0", (5, 24, 0), True), |
| 342 | + ("SemVer, < 5.23, Aura", "5.22-aura", (5, 22, 0), False), |
| 343 | + ("SemVer, > 5.23, Aura", "5.24-aura", (5, 24, 0), True), |
| 344 | + ("CalVer", "2025.01.0", (2025, 1, 0), True), |
| 345 | + ("CalVer, Aura", "2025.01-aura", (2025, 1, 0), True), |
| 346 | + ], |
| 347 | +) |
| 348 | +@mock.patch( |
| 349 | + "neo4j_graphrag.experimental.components.kg_writer.Neo4jWriter._db_setup", |
| 350 | + return_value=None, |
| 351 | +) |
| 352 | +def test_get_version( |
| 353 | + _: Mock, |
| 354 | + driver: MagicMock, |
| 355 | + description: str, |
| 356 | + version: str, |
| 357 | + version_tuple: Tuple[int], |
| 358 | + is_5_23_or_above: bool, |
| 359 | +) -> None: |
| 360 | + execute_query_mock = MagicMock( |
| 361 | + return_value=( |
| 362 | + [ |
| 363 | + {"versions": [version]}, |
| 364 | + ], |
| 365 | + None, |
| 366 | + None, |
| 367 | + ) |
| 368 | + ) |
| 369 | + driver.execute_query = execute_query_mock |
| 370 | + neo4j_writer = Neo4jWriter(driver=driver) |
| 371 | + assert ( |
| 372 | + version_tuple == neo4j_writer._get_version() |
| 373 | + ), f"Failed version_tuple test case: {description}" |
| 374 | + assert ( |
| 375 | + neo4j_writer.is_version_5_23_or_above is is_5_23_or_above |
| 376 | + ), f"Failed is_version_5_23_or_above test case: {description}" |
0 commit comments