Skip to content

Commit 76cf1a9

Browse files
committed
Tighter testing
1 parent 5a1c4e7 commit 76cf1a9

File tree

4 files changed

+24
-6
lines changed

4 files changed

+24
-6
lines changed

neo4j/v1/session.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,6 @@ class Driver(object):
165165
def __init__(self, connector):
166166
self.pool = ConnectionPool(connector)
167167

168-
def __del__(self):
169-
self.close()
170-
171168
def __enter__(self):
172169
return self
173170

@@ -284,8 +281,12 @@ def __init__(self, address, **config):
284281
# scenario right now
285282
raise ValueError("TRUST_ON_FIRST_USE is not compatible with routing")
286283
Driver.__init__(self, lambda a: connect(a, security_plan.ssl_context, **config))
287-
self.router = ConnectionRouter(self.pool, address)
288-
self.router.discover()
284+
try:
285+
self.router = ConnectionRouter(self.pool, address)
286+
self.router.discover()
287+
except:
288+
self.close()
289+
raise
289290

290291
def session(self, access_mode=None):
291292
if access_mode == READ_ACCESS:

test/test_connection.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,9 @@ class RouterTestCase(ServerTestCase):
105105
def setUp(self):
106106
self.pool = ConnectionPool(lambda a: connect(a, auth=basic_auth("neo4j", "password")))
107107

108+
def tearDown(self):
109+
self.pool.close()
110+
108111
def test_router_is_initially_stale(self):
109112
router = ConnectionRouter(self.pool, ("127.0.0.1", 7687))
110113
assert router.stale()

test/test_driver.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ def test_fail_nicely_when_connecting_to_http_port(self):
7171

7272
class DirectDriverTestCase(ServerTestCase):
7373

74+
def tearDown(self):
75+
self.await_all_servers()
76+
7477
def test_direct_disconnect_on_run(self):
7578
self.start_stub_server(9001, "disconnect_on_run.script")
7679
uri = "bolt://127.0.0.1:9001"
@@ -96,6 +99,9 @@ def test_direct_disconnect_on_pull_all(self):
9699

97100
class RoutingDriverTestCase(ServerTestCase):
98101

102+
def tearDown(self):
103+
self.await_all_servers()
104+
99105
def test_cannot_discover_servers_on_non_router(self):
100106
self.start_stub_server(9001, "non_router.script")
101107
uri = "bolt+routing://127.0.0.1:9001"

test/util.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ class ServerTestCase(TestCase):
8585

8686
known_hosts = KNOWN_HOSTS
8787
known_hosts_backup = known_hosts + ".backup"
88+
servers = []
8889

8990
def setUp(self):
9091
if isfile(self.known_hosts):
@@ -99,8 +100,15 @@ def tearDown(self):
99100
rename(self.known_hosts_backup, self.known_hosts)
100101

101102
def start_stub_server(self, port, script):
102-
StubServer(port, script).start()
103+
server = StubServer(port, script)
104+
server.start()
103105
sleep(0.5)
106+
self.servers.append(server)
107+
108+
def await_all_servers(self):
109+
while self.servers:
110+
server = self.servers.pop()
111+
server.join()
104112

105113

106114
class StubServer(Thread):

0 commit comments

Comments
 (0)