|
21 | 21 |
|
22 | 22 | from unittest import SkipTest |
23 | 23 |
|
| 24 | +import pytest |
24 | 25 | from pytest import raises |
25 | 26 |
|
26 | 27 | from neo4j.work.simple import Statement |
27 | 28 | from neo4j.exceptions import CypherError, ClientError, TransientError |
28 | 29 | from neo4j.graph import Node, Relationship |
| 30 | +from neo4j.api import Version |
29 | 31 |
|
30 | 32 |
|
31 | 33 | def test_can_run_simple_statement(session): |
@@ -166,15 +168,29 @@ def test_statement_object(session): |
166 | 168 | assert value == 1 |
167 | 169 |
|
168 | 170 |
|
169 | | -def test_autocommit_transactions_should_support_metadata(session): |
| 171 | +@pytest.mark.parametrize( |
| 172 | + "test_input, neo4j_version", |
| 173 | + [ |
| 174 | + ("CALL dbms.getTXMetaData", Version(3, 0)), |
| 175 | + ("CALL tx.getMetaData", Version(4, 0)), |
| 176 | + ] |
| 177 | +) |
| 178 | +def test_autocommit_transactions_should_support_metadata(session, test_input, neo4j_version): |
| 179 | + # python -m pytest tests/integration/test_autocommit.py -s -r fEsxX -k test_autocommit_transactions_should_support_metadata |
170 | 180 | metadata_in = {"foo": "bar"} |
| 181 | + |
| 182 | + result = session.run("RETURN 1") |
| 183 | + value = result.single().value() |
| 184 | + summary = result.summary() |
| 185 | + server_agent = summary.server.agent |
| 186 | + |
171 | 187 | try: |
172 | | - statement = Statement("CALL dbms.getTXMetaData", metadata=metadata_in) |
173 | | - metadata_out = session.run(statement).single().value() |
| 188 | + statement = Statement(test_input, metadata=metadata_in) |
| 189 | + result = session.run(statement) |
| 190 | + metadata_out = result.single().value() |
174 | 191 | except ClientError as e: |
175 | 192 | if e.code == "Neo.ClientError.Procedure.ProcedureNotFound": |
176 | | - raise SkipTest("Cannot assert correct metadata as Neo4j edition " |
177 | | - "does not support procedure dbms.getTXMetaData") |
| 193 | + pytest.skip("Cannot assert correct metadata as {} does not support procedure '{}' introduced in Neo4j {}".format(server_agent, test_input, neo4j_version)) |
178 | 194 | else: |
179 | 195 | raise |
180 | 196 | else: |
|
0 commit comments