From 53b9737aeac91d788e21020063e2aa5cbe37acc9 Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Sat, 19 May 2018 19:24:35 +0100 Subject: [PATCH 1/2] fix for premature close --- CHANGELOG.md | 6 ++++++ docs/index.rst | 2 +- lomond/_version.py | 2 +- lomond/session.py | 8 +++++++- tests/test_integration.py | 14 ++++++++++++++ 5 files changed, 29 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1ea2a46..002e6a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [0.2.5] - 2018-05-19 + +### Fixed + +- Traceback if close is called prior to WebSocket ready + ## [0.2.4] - 2018-05-15 ### Fixed diff --git a/docs/index.rst b/docs/index.rst index fb3006a..afe993a 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -6,7 +6,7 @@ Welcome to Dataplicity Lomond's documentation! ============================================== -Lomond is a Pythonic Websockets client library designed for reliability +Lomond is a Pythonic WebSockets client library designed for reliability and ease of use. Sponsor diff --git a/lomond/_version.py b/lomond/_version.py index 2a79c71..8f6fdc4 100644 --- a/lomond/_version.py +++ b/lomond/_version.py @@ -1,3 +1,3 @@ from __future__ import unicode_literals -__version__ = "0.2.4" +__version__ = "0.2.5a0" diff --git a/lomond/session.py b/lomond/session.py index 264015e..5d32acd 100644 --- a/lomond/session.py +++ b/lomond/session.py @@ -57,7 +57,11 @@ def __repr__(self): @property def session_time(self): """Get the time (in seconds) since the WebSocket session started.""" - return time.time() - self._start_time + return ( + 0.0 + if self._start_time is None else + time.time() - self._start_time + ) def close(self): """Close the websocket, if it is open.""" @@ -341,6 +345,8 @@ def run(self, url = websocket.url # Connecting event yield events.Connecting(url) + if websocket.is_closed: + return # Create socket and connect to remote server try: diff --git a/tests/test_integration.py b/tests/test_integration.py index f53bf9d..989c416 100644 --- a/tests/test_integration.py +++ b/tests/test_integration.py @@ -139,3 +139,17 @@ def test_echo(self): assert events[6].name == 'closed' assert events[7].name == 'disconnected' assert events[7].graceful + + def test_premature_close_connecting(self): + """Test close after connecting event.""" + ws = WebSocket('ws://NEVERCONNECTS') + for event in ws: + if event.name == 'connecting': + ws.close() + + def test_premature_close_connected(self): + """Test close after connected event.""" + ws = WebSocket(self.WS_URL + 'graceful') + for event in ws: + if event.name == 'connected': + ws.close() From c574f8101cead30875310ad01178a8729c89065b Mon Sep 17 00:00:00 2001 From: Will McGugan Date: Mon, 28 May 2018 18:15:35 +0100 Subject: [PATCH 2/2] version bump --- CHANGELOG.md | 2 +- lomond/_version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 002e6a5..585c748 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). -## [0.2.5] - 2018-05-19 +## [0.2.5] - 2018-05-28 ### Fixed diff --git a/lomond/_version.py b/lomond/_version.py index 8f6fdc4..3b4f0e8 100644 --- a/lomond/_version.py +++ b/lomond/_version.py @@ -1,3 +1,3 @@ from __future__ import unicode_literals -__version__ = "0.2.5a0" +__version__ = "0.2.5"