Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 31 additions & 14 deletions examples/test_examples.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,12 @@ def test_minimal_working_example(self):
driver = GraphDatabase.driver("bolt://localhost", auth=basic_auth("neo4j", "neo4j"))
session = driver.session()

session.run("CREATE (a:Person {name:'Arthur', title:'King'})")
session.run("CREATE (a:Person {name: {name}, title: {title}})",
{"name": "Arthur", "title": "King"})

result = session.run("MATCH (a:Person) WHERE a.name = 'Arthur' RETURN a.name AS name, a.title AS title")
result = session.run("MATCH (a:Person) WHERE a.name = {name} "
"RETURN a.name AS name, a.title AS title",
{"name": "Arthur"})
for record in result:
print("%s %s" % (record["title"], record["name"]))

Expand Down Expand Up @@ -106,7 +109,8 @@ def test_statement(self):
driver = GraphDatabase.driver("bolt://localhost", auth=auth_token)
session = driver.session()
# tag::statement[]
result = session.run("CREATE (person:Person {name: {name}})", {"name": "Arthur"})
result = session.run("CREATE (person:Person {name: {name}})",
{"name": "Arthur"})
# end::statement[]
result.consume()
session.close()
Expand All @@ -126,7 +130,8 @@ def test_result_traversal(self):
# tag::result-traversal[]
search_term = "Sword"
result = session.run("MATCH (weapon:Weapon) WHERE weapon.name CONTAINS {term} "
"RETURN weapon.name", {"term": search_term})
"RETURN weapon.name",
{"term": search_term})
print("List of weapons called %r:" % search_term)
for record in result:
print(record["weapon.name"])
Expand All @@ -139,7 +144,8 @@ def test_access_record(self):
# tag::access-record[]
search_term = "Arthur"
result = session.run("MATCH (weapon:Weapon) WHERE weapon.owner CONTAINS {term} "
"RETURN weapon.name, weapon.material, weapon.size", {"term": search_term})
"RETURN weapon.name, weapon.material, weapon.size",
{"term": search_term})
print("List of weapons owned by %r:" % search_term)
for record in result:
print(", ".join("%s: %s" % (key, record[key]) for key in record.keys()))
Expand All @@ -151,7 +157,8 @@ def test_result_retention(self):
# tag::retain-result[]
session = driver.session()
result = session.run("MATCH (knight:Person:Knight) WHERE knight.castle = {castle} "
"RETURN knight.name AS name", {"castle": "Camelot"})
"RETURN knight.name AS name",
{"castle": "Camelot"})
retained_result = list(result)
session.close()
for record in retained_result:
Expand All @@ -164,11 +171,13 @@ def test_nested_statements(self):
session = driver.session()
# tag::nested-statements[]
result = session.run("MATCH (knight:Person:Knight) WHERE knight.castle = {castle} "
"RETURN id(knight) AS knight_id", {"castle": "Camelot"})
"RETURN id(knight) AS knight_id",
{"castle": "Camelot"})
for record in result:
session.run("MATCH (knight) WHERE id(knight) = {id} "
"MATCH (king:Person) WHERE king.name = {king} "
"CREATE (knight)-[:DEFENDS]->(king)", {"id": record["knight_id"], "king": "Arthur"})
"CREATE (knight)-[:DEFENDS]->(king)",
{"id": record["knight_id"], "king": "Arthur"})
# end::nested-statements[]
session.close()

Expand All @@ -177,10 +186,13 @@ def test_transaction_commit(self):
session = driver.session()
# tag::transaction-commit[]
with session.begin_transaction() as tx:
tx.run("CREATE (:Person {name: 'Guinevere'})")
tx.run("CREATE (:Person {name: {name}})",
{"name": "Guinevere"})
tx.success = True
# end::transaction-commit[]
result = session.run("MATCH (p:Person {name: 'Guinevere'}) RETURN count(p)")
result = session.run("MATCH (p:Person {name: {name}}) "
"RETURN count(p)",
{"name": "Guinevere"})
record = next(iter(result))
assert record["count(p)"] == 1
session.close()
Expand All @@ -190,10 +202,13 @@ def test_transaction_rollback(self):
session = driver.session()
# tag::transaction-rollback[]
with session.begin_transaction() as tx:
tx.run("CREATE (:Person {name: 'Merlin'})")
tx.run("CREATE (:Person {name: {name}})",
{"name": "Merlin"})
tx.success = False
# end::transaction-rollback[]
result = session.run("MATCH (p:Person {name: 'Merlin'}) RETURN count(p)")
result = session.run("MATCH (p:Person {name: {name}}) "
"RETURN count(p)",
{"name": "Merlin"})
record = next(iter(result))
assert record["count(p)"] == 0
session.close()
Expand All @@ -203,7 +218,8 @@ def test_result_summary_query_profile(self):
session = driver.session()
# tag::result-summary-query-profile[]
result = session.run("PROFILE MATCH (p:Person {name: {name}}) "
"RETURN id(p)", {"name": "Arthur"})
"RETURN id(p)",
{"name": "Arthur"})
summary = result.consume()
print(summary.statement_type)
print(summary.profile)
Expand All @@ -214,7 +230,8 @@ def test_result_summary_notifications(self):
driver = GraphDatabase.driver("bolt://localhost", auth=auth_token)
session = driver.session()
# tag::result-summary-notifications[]
result = session.run("EXPLAIN MATCH (king), (queen) RETURN king, queen")
result = session.run("EXPLAIN MATCH (king), (queen) "
"RETURN king, queen")
summary = result.consume()
for notification in summary.notifications:
print(notification)
Expand Down