diff --git a/test_websocket.py b/test_websocket.py index 191d282..3c68287 100644 --- a/test_websocket.py +++ b/test_websocket.py @@ -1,7 +1,10 @@ # -*- coding: utf-8 -*- # -import unittest +# stdlib +import base64, unittest, uuid + +# websocket-client import websocket as ws TRACABLE=False @@ -213,6 +216,12 @@ class WebSocketTest(unittest.TestCase): self.assertRaises(error, s.send, "Hello") self.assertRaises(error, s.recv) + def testUUID4(self): + """ WebSocket key should be a UUID4. + """ + key = ws._create_sec_websocket_key() + u = uuid.UUID(bytes=base64.b64decode(key)) + self.assertEquals(4, u.version) if __name__ == "__main__": diff --git a/websocket.py b/websocket.py index b9353d9..bcceedc 100644 --- a/websocket.py +++ b/websocket.py @@ -166,7 +166,7 @@ _MAX_CHAR_BYTE = (1<<8) -1 # http://axod.blogspot.com/2010/06/websocket-gets-update-and-it-breaks.html def _create_sec_websocket_key(): - uid = uuid.uuid1() + uid = uuid.uuid4() return base64.encodestring(uid.bytes).strip() _HEADERS_TO_CHECK = {