fix integration test

This commit is contained in:
Victor Shyba 2019-07-21 23:26:49 -03:00 committed by Lex Berezhny
parent 34500e07c6
commit df41a82b23
2 changed files with 6 additions and 3 deletions

View file

@ -15,6 +15,7 @@ class TestSessionBloat(IntegrationTestCase):
async def test_session_bloat_from_socket_timeout(self): async def test_session_bloat_from_socket_timeout(self):
await self.conductor.stop_spv() await self.conductor.stop_spv()
await self.ledger.stop()
self.conductor.spv_node.session_timeout = 1 self.conductor.spv_node.session_timeout = 1
await self.conductor.start_spv() await self.conductor.start_spv()
session = ClientSession(network=None, server=self.ledger.network.client.server, timeout=0.2) session = ClientSession(network=None, server=self.ledger.network.client.server, timeout=0.2)

View file

@ -40,15 +40,17 @@ class ClientSession(BaseClientSession):
# TODO: change to 'ping' on newer protocol (above 1.2) # TODO: change to 'ping' on newer protocol (above 1.2)
while not self.is_closing(): while not self.is_closing():
if (time() - self.last_send) > self.max_seconds_idle: if (time() - self.last_send) > self.max_seconds_idle:
await self.send_request('server.banner') try:
await self.send_request('server.banner')
except:
self.abort()
raise
await asyncio.sleep(self.max_seconds_idle//3) await asyncio.sleep(self.max_seconds_idle//3)
async def create_connection(self, timeout=6): async def create_connection(self, timeout=6):
connector = Connector(lambda: self, *self.server) connector = Connector(lambda: self, *self.server)
await asyncio.wait_for(connector.create_connection(), timeout=timeout) await asyncio.wait_for(connector.create_connection(), timeout=timeout)
self.ping_task = asyncio.create_task(self.ping_forever()) self.ping_task = asyncio.create_task(self.ping_forever())
# tie the ping task to this connection: if the task dies for any unexpected error, abort
self.ping_task.add_done_callback(lambda _: self.abort())
async def handle_request(self, request): async def handle_request(self, request):
controller = self.network.subscription_controllers[request.method] controller = self.network.subscription_controllers[request.method]