Skip to content

Commit 0a7a71e

Browse files
committed
Move RedirectHandshake to the legacy package.
It is only used by the legacy implementation.
1 parent 8daa88e commit 0a7a71e

File tree

6 files changed

+27
-25
lines changed

6 files changed

+27
-25
lines changed

src/websockets/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
"NegotiationError",
3333
"PayloadTooBig",
3434
"ProtocolError",
35-
"RedirectHandshake",
3635
"SecurityError",
3736
"WebSocketException",
3837
"WebSocketProtocolError",
@@ -47,6 +46,7 @@
4746
"AbortHandshake",
4847
"InvalidMessage",
4948
"InvalidStatusCode",
49+
"RedirectHandshake",
5050
# .legacy.protocol
5151
"WebSocketCommonProtocol",
5252
# .legacy.server
@@ -90,7 +90,6 @@
9090
NegotiationError,
9191
PayloadTooBig,
9292
ProtocolError,
93-
RedirectHandshake,
9493
SecurityError,
9594
WebSocketException,
9695
WebSocketProtocolError,
@@ -104,6 +103,7 @@
104103
AbortHandshake,
105104
InvalidMessage,
106105
InvalidStatusCode,
106+
RedirectHandshake,
107107
)
108108
from .legacy.protocol import WebSocketCommonProtocol
109109
from .legacy.server import (
@@ -152,7 +152,6 @@
152152
"NegotiationError": ".exceptions",
153153
"PayloadTooBig": ".exceptions",
154154
"ProtocolError": ".exceptions",
155-
"RedirectHandshake": ".exceptions",
156155
"SecurityError": ".exceptions",
157156
"WebSocketException": ".exceptions",
158157
"WebSocketProtocolError": ".exceptions",
@@ -167,6 +166,7 @@
167166
"AbortHandshake": ".legacy.exceptions",
168167
"InvalidMessage": ".legacy.exceptions",
169168
"InvalidStatusCode": ".legacy.exceptions",
169+
"RedirectHandshake": ".legacy.exceptions",
170170
# .legacy.protocol
171171
"WebSocketCommonProtocol": ".legacy.protocol",
172172
# .legacy.server

src/websockets/exceptions.py

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
* :exc:`InvalidParameterName`
2121
* :exc:`InvalidParameterValue`
2222
* :exc:`AbortHandshake` (legacy)
23-
* :exc:`RedirectHandshake`
23+
* :exc:`RedirectHandshake` (legacy)
2424
* :exc:`InvalidState`
2525
* :exc:`InvalidURI`
2626
* :exc:`PayloadTooBig`
@@ -300,21 +300,6 @@ def __str__(self) -> str:
300300
return f"invalid value for parameter {self.name}: {self.value}"
301301

302302

303-
class RedirectHandshake(InvalidHandshake):
304-
"""
305-
Raised when a handshake gets redirected.
306-
307-
This exception is an implementation detail.
308-
309-
"""
310-
311-
def __init__(self, uri: str) -> None:
312-
self.uri = uri
313-
314-
def __str__(self) -> str:
315-
return f"redirect to {self.uri}"
316-
317-
318303
class InvalidState(WebSocketException, AssertionError):
319304
"""
320305
Raised when an operation is forbidden in the current state.
@@ -360,6 +345,7 @@ class ProtocolError(WebSocketException):
360345
AbortHandshake,
361346
InvalidMessage,
362347
InvalidStatusCode,
348+
RedirectHandshake,
363349
)
364350

365351
WebSocketProtocolError = ProtocolError
@@ -370,6 +356,7 @@ class ProtocolError(WebSocketException):
370356
"AbortHandshake": ".legacy.exceptions",
371357
"InvalidMessage": ".legacy.exceptions",
372358
"InvalidStatusCode": ".legacy.exceptions",
359+
"RedirectHandshake": ".legacy.exceptions",
373360
"WebSocketProtocolError": ".legacy.exceptions",
374361
},
375362
)

src/websockets/legacy/client.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
InvalidHandshake,
2323
InvalidHeader,
2424
NegotiationError,
25-
RedirectHandshake,
25+
2626
SecurityError,
2727
)
2828
from ..extensions import ClientExtensionFactory, Extension
@@ -39,7 +39,7 @@
3939
from ..http11 import USER_AGENT
4040
from ..typing import ExtensionHeader, LoggerLike, Origin, Subprotocol
4141
from ..uri import WebSocketURI, parse_uri
42-
from .exceptions import InvalidMessage, InvalidStatusCode
42+
from .exceptions import InvalidMessage, InvalidStatusCode, RedirectHandshake
4343
from .handshake import build_request, check_response
4444
from .http import read_response
4545
from .protocol import WebSocketCommonProtocol

src/websockets/legacy/exceptions.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,3 +61,18 @@ def __str__(self) -> str:
6161
f"{len(self.headers)} headers, "
6262
f"{len(self.body)} bytes"
6363
)
64+
65+
66+
class RedirectHandshake(InvalidHandshake):
67+
"""
68+
Raised when a handshake gets redirected.
69+
70+
This exception is an implementation detail.
71+
72+
"""
73+
74+
def __init__(self, uri: str) -> None:
75+
self.uri = uri
76+
77+
def __str__(self) -> str:
78+
return f"redirect to {self.uri}"

tests/legacy/test_exceptions.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ def test_str(self):
1919
AbortHandshake(200, Headers(), b"OK\n"),
2020
"HTTP 200, 0 headers, 3 bytes",
2121
),
22+
(
23+
RedirectHandshake("wss://example.com"),
24+
"redirect to wss://example.com",
25+
),
2226
]:
2327
with self.subTest(exception=exception):
2428
self.assertEqual(str(exception), exception_str)

tests/test_exceptions.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,6 @@ def test_str(self):
151151
InvalidParameterValue("a", "|"),
152152
"invalid value for parameter a: |",
153153
),
154-
(
155-
RedirectHandshake("wss://example.com"),
156-
"redirect to wss://example.com",
157-
),
158154
(
159155
InvalidState("WebSocket connection isn't established yet"),
160156
"WebSocket connection isn't established yet",

0 commit comments

Comments
 (0)