diff options
author | robot-piglet <robot-piglet@yandex-team.com> | 2024-05-08 11:10:05 +0300 |
---|---|---|
committer | robot-piglet <robot-piglet@yandex-team.com> | 2024-05-08 11:21:05 +0300 |
commit | 4196c19bc0753c1c2fe4d29f231bb49039430f9f (patch) | |
tree | f02ac799e7260353047c65d46fa5ce206f2e9303 /contrib/python/websocket-client/py3/websocket/tests | |
parent | c3d51e170ca39637234e72ae19dcbc53b737a83e (diff) | |
download | ydb-4196c19bc0753c1c2fe4d29f231bb49039430f9f.tar.gz |
Intermediate changes
Diffstat (limited to 'contrib/python/websocket-client/py3/websocket/tests')
6 files changed, 131 insertions, 122 deletions
diff --git a/contrib/python/websocket-client/py3/websocket/tests/test_abnf.py b/contrib/python/websocket-client/py3/websocket/tests/test_abnf.py index df5bc6bd71..a749f13bd5 100644 --- a/contrib/python/websocket-client/py3/websocket/tests/test_abnf.py +++ b/contrib/python/websocket-client/py3/websocket/tests/test_abnf.py @@ -2,14 +2,14 @@ # import unittest -import websocket as ws -from websocket._abnf import * +from websocket._abnf import ABNF, frame_buffer +from websocket._exceptions import WebSocketProtocolException """ test_abnf.py websocket - WebSocket client library for Python -Copyright 2023 engn33r +Copyright 2024 engn33r Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ limitations under the License. class ABNFTest(unittest.TestCase): - def testInit(self): + def test_init(self): a = ABNF(0, 0, 0, 0, opcode=ABNF.OPCODE_PING) self.assertEqual(a.fin, 0) self.assertEqual(a.rsv1, 0) @@ -38,28 +38,28 @@ class ABNFTest(unittest.TestCase): self.assertEqual(a_bad.rsv1, 1) self.assertEqual(a_bad.opcode, 77) - def testValidate(self): + def test_validate(self): a_invalid_ping = ABNF(0, 0, 0, 0, opcode=ABNF.OPCODE_PING) self.assertRaises( - ws._exceptions.WebSocketProtocolException, + WebSocketProtocolException, a_invalid_ping.validate, skip_utf8_validation=False, ) a_bad_rsv_value = ABNF(0, 1, 0, 0, opcode=ABNF.OPCODE_TEXT) self.assertRaises( - ws._exceptions.WebSocketProtocolException, + WebSocketProtocolException, a_bad_rsv_value.validate, skip_utf8_validation=False, ) a_bad_opcode = ABNF(0, 0, 0, 0, opcode=77) self.assertRaises( - ws._exceptions.WebSocketProtocolException, + WebSocketProtocolException, a_bad_opcode.validate, skip_utf8_validation=False, ) a_bad_close_frame = ABNF(0, 0, 0, 0, opcode=ABNF.OPCODE_CLOSE, data=b"\x01") self.assertRaises( - ws._exceptions.WebSocketProtocolException, + WebSocketProtocolException, a_bad_close_frame.validate, skip_utf8_validation=False, ) @@ -67,7 +67,7 @@ class ABNFTest(unittest.TestCase): 0, 0, 0, 0, opcode=ABNF.OPCODE_CLOSE, data=b"\x01\x8a\xaa\xff\xdd" ) self.assertRaises( - ws._exceptions.WebSocketProtocolException, + WebSocketProtocolException, a_bad_close_frame_2.validate, skip_utf8_validation=False, ) @@ -75,12 +75,12 @@ class ABNFTest(unittest.TestCase): 0, 0, 0, 0, opcode=ABNF.OPCODE_CLOSE, data=b"\x03\xe7" ) self.assertRaises( - ws._exceptions.WebSocketProtocolException, + WebSocketProtocolException, a_bad_close_frame_3.validate, skip_utf8_validation=True, ) - def testMask(self): + def test_mask(self): abnf_none_data = ABNF( 0, 0, 0, 0, opcode=ABNF.OPCODE_PING, mask_value=1, data=None ) @@ -91,7 +91,7 @@ class ABNFTest(unittest.TestCase): ) self.assertEqual(abnf_str_data._get_masked(bytes_val), b"aaaa\x00") - def testFormat(self): + def test_format(self): abnf_bad_rsv_bits = ABNF(2, 0, 0, 0, opcode=ABNF.OPCODE_TEXT) self.assertRaises(ValueError, abnf_bad_rsv_bits.format) abnf_bad_opcode = ABNF(0, 0, 0, 0, opcode=5) @@ -110,7 +110,7 @@ class ABNFTest(unittest.TestCase): ) self.assertEqual(b"\x01\x03\x01\x8a\xcc", abnf_no_mask.format()) - def testFrameBuffer(self): + def test_frame_buffer(self): fb = frame_buffer(0, True) self.assertEqual(fb.recv, 0) self.assertEqual(fb.skip_utf8_validation, True) diff --git a/contrib/python/websocket-client/py3/websocket/tests/test_app.py b/contrib/python/websocket-client/py3/websocket/tests/test_app.py index 5ed9a22ed5..18eace5442 100644 --- a/contrib/python/websocket-client/py3/websocket/tests/test_app.py +++ b/contrib/python/websocket-client/py3/websocket/tests/test_app.py @@ -12,7 +12,7 @@ import websocket as ws test_app.py websocket - WebSocket client library for Python -Copyright 2023 engn33r +Copyright 2024 engn33r Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -53,10 +53,13 @@ class WebSocketAppTest(unittest.TestCase): WebSocketAppTest.get_mask_key_id = WebSocketAppTest.NotSetYet() WebSocketAppTest.on_error_data = WebSocketAppTest.NotSetYet() + def close(self): + pass + @unittest.skipUnless( TEST_WITH_LOCAL_SERVER, "Tests using local websocket server are disabled" ) - def testKeepRunning(self): + def test_keep_running(self): """A WebSocketApp should keep running as long as its self.keep_running is not False (in the boolean context). """ @@ -69,7 +72,7 @@ class WebSocketAppTest(unittest.TestCase): WebSocketAppTest.keep_running_open = self.keep_running self.keep_running = False - def on_message(wsapp, message): + def on_message(_, message): print(message) self.close() @@ -87,7 +90,7 @@ class WebSocketAppTest(unittest.TestCase): # @unittest.skipUnless(TEST_WITH_LOCAL_SERVER, "Tests using local websocket server are disabled") @unittest.skipUnless(False, "Test disabled for now (requires rel)") - def testRunForeverDispatcher(self): + def test_run_forever_dispatcher(self): """A WebSocketApp should keep running as long as its self.keep_running is not False (in the boolean context). """ @@ -98,7 +101,7 @@ class WebSocketAppTest(unittest.TestCase): self.recv() self.send("goodbye!") - def on_message(wsapp, message): + def on_message(_, message): print(message) self.close() @@ -115,7 +118,7 @@ class WebSocketAppTest(unittest.TestCase): @unittest.skipUnless( TEST_WITH_LOCAL_SERVER, "Tests using local websocket server are disabled" ) - def testRunForeverTeardownCleanExit(self): + def test_run_forever_teardown_clean_exit(self): """The WebSocketApp.run_forever() method should return `False` when the application ends gracefully.""" app = ws.WebSocketApp(f"ws://127.0.0.1:{LOCAL_WS_SERVER_PORT}") threading.Timer(interval=0.2, function=app.close).start() @@ -123,7 +126,7 @@ class WebSocketAppTest(unittest.TestCase): self.assertEqual(teardown, False) @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") - def testSockMaskKey(self): + def test_sock_mask_key(self): """A WebSocketApp should forward the received mask_key function down to the actual socket. """ @@ -140,14 +143,14 @@ class WebSocketAppTest(unittest.TestCase): self.assertEqual(id(app.get_mask_key), id(my_mask_key_func)) @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") - def testInvalidPingIntervalPingTimeout(self): + def test_invalid_ping_interval_ping_timeout(self): """Test exception handling if ping_interval < ping_timeout""" - def on_ping(app, msg): + def on_ping(app, _): print("Got a ping!") app.close() - def on_pong(app, msg): + def on_pong(app, _): print("Got a pong! No need to respond") app.close() @@ -163,14 +166,14 @@ class WebSocketAppTest(unittest.TestCase): ) @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") - def testPingInterval(self): + def test_ping_interval(self): """Test WebSocketApp proper ping functionality""" - def on_ping(app, msg): + def on_ping(app, _): print("Got a ping!") app.close() - def on_pong(app, msg): + def on_pong(app, _): print("Got a pong! No need to respond") app.close() @@ -182,7 +185,7 @@ class WebSocketAppTest(unittest.TestCase): ) @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") - def testOpcodeClose(self): + def test_opcode_close(self): """Test WebSocketApp close opcode""" app = ws.WebSocketApp("wss://tsock.us1.twilio.com/v3/wsconnect") @@ -197,7 +200,7 @@ class WebSocketAppTest(unittest.TestCase): # app.run_forever(ping_interval=2, ping_timeout=1, ping_payload="Ping payload") @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") - def testBadPingInterval(self): + def test_bad_ping_interval(self): """A WebSocketApp handling of negative ping_interval""" app = ws.WebSocketApp("wss://api-pub.bitfinex.com/ws/1") self.assertRaises( @@ -208,7 +211,7 @@ class WebSocketAppTest(unittest.TestCase): ) @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") - def testBadPingTimeout(self): + def test_bad_ping_timeout(self): """A WebSocketApp handling of negative ping_timeout""" app = ws.WebSocketApp("wss://api-pub.bitfinex.com/ws/1") self.assertRaises( @@ -219,7 +222,7 @@ class WebSocketAppTest(unittest.TestCase): ) @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") - def testCloseStatusCode(self): + def test_close_status_code(self): """Test extraction of close frame status code and close reason in WebSocketApp""" def on_close(wsapp, close_status_code, close_msg): @@ -249,7 +252,7 @@ class WebSocketAppTest(unittest.TestCase): @unittest.skipUnless( TEST_WITH_LOCAL_SERVER, "Tests using local websocket server are disabled" ) - def testCallbackFunctionException(self): + def test_callback_function_exception(self): """Test callback function exception handling""" exc = None @@ -264,7 +267,7 @@ class WebSocketAppTest(unittest.TestCase): nonlocal exc exc = err - def on_pong(app, msg): + def on_pong(app, _): app.close() app = ws.WebSocketApp( @@ -282,7 +285,7 @@ class WebSocketAppTest(unittest.TestCase): @unittest.skipUnless( TEST_WITH_LOCAL_SERVER, "Tests using local websocket server are disabled" ) - def testCallbackMethodException(self): + def test_callback_method_exception(self): """Test callback method exception handling""" class Callbacks: @@ -297,14 +300,14 @@ class WebSocketAppTest(unittest.TestCase): ) self.app.run_forever(ping_interval=2, ping_timeout=1) - def on_open(self, app): + def on_open(self, _): raise RuntimeError("Callback failed") def on_error(self, app, err): self.passed_app = app self.exc = err - def on_pong(self, app, msg): + def on_pong(self, app, _): app.close() callbacks = Callbacks() @@ -316,16 +319,16 @@ class WebSocketAppTest(unittest.TestCase): @unittest.skipUnless( TEST_WITH_LOCAL_SERVER, "Tests using local websocket server are disabled" ) - def testReconnect(self): + def test_reconnect(self): """Test reconnect""" pong_count = 0 exc = None - def on_error(app, err): + def on_error(_, err): nonlocal exc exc = err - def on_pong(app, msg): + def on_pong(app, _): nonlocal pong_count pong_count += 1 if pong_count == 1: diff --git a/contrib/python/websocket-client/py3/websocket/tests/test_cookiejar.py b/contrib/python/websocket-client/py3/websocket/tests/test_cookiejar.py index 0de87517d4..67eddb627a 100644 --- a/contrib/python/websocket-client/py3/websocket/tests/test_cookiejar.py +++ b/contrib/python/websocket-client/py3/websocket/tests/test_cookiejar.py @@ -6,7 +6,7 @@ from websocket._cookiejar import SimpleCookieJar test_cookiejar.py websocket - WebSocket client library for Python -Copyright 2023 engn33r +Copyright 2024 engn33r Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -23,7 +23,7 @@ limitations under the License. class CookieJarTest(unittest.TestCase): - def testAdd(self): + def test_add(self): cookie_jar = SimpleCookieJar() cookie_jar.add("") self.assertFalse( @@ -67,7 +67,7 @@ class CookieJarTest(unittest.TestCase): self.assertEqual(cookie_jar.get("xyz"), "e=f") self.assertEqual(cookie_jar.get("something"), "") - def testSet(self): + def test_set(self): cookie_jar = SimpleCookieJar() cookie_jar.set("a=b") self.assertFalse( @@ -104,7 +104,7 @@ class CookieJarTest(unittest.TestCase): self.assertEqual(cookie_jar.get("xyz"), "e=f") self.assertEqual(cookie_jar.get("something"), "") - def testGet(self): + def test_get(self): cookie_jar = SimpleCookieJar() cookie_jar.set("a=b; c=d; domain=abc.com") self.assertEqual(cookie_jar.get("abc.com"), "a=b; c=d") diff --git a/contrib/python/websocket-client/py3/websocket/tests/test_http.py b/contrib/python/websocket-client/py3/websocket/tests/test_http.py index 9df36e43ab..b8b363acc4 100644 --- a/contrib/python/websocket-client/py3/websocket/tests/test_http.py +++ b/contrib/python/websocket-client/py3/websocket/tests/test_http.py @@ -7,7 +7,7 @@ import ssl import unittest import websocket -import websocket as ws +from websocket._exceptions import WebSocketProxyException, WebSocketException from websocket._http import ( _get_addrinfo_list, _start_proxied_socket, @@ -15,13 +15,14 @@ from websocket._http import ( connect, proxy_info, read_headers, + HAVE_PYTHON_SOCKS, ) """ test_http.py websocket - WebSocket client library for Python -Copyright 2023 engn33r +Copyright 2024 engn33r Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -94,20 +95,18 @@ class OptsList: class HttpTest(unittest.TestCase): - def testReadHeader(self): - status, header, status_message = read_headers( - HeaderSockMock("data/header01.txt") - ) + def test_read_header(self): + status, header, _ = read_headers(HeaderSockMock("data/header01.txt")) self.assertEqual(status, 101) self.assertEqual(header["connection"], "Upgrade") # header02.txt is intentionally malformed self.assertRaises( - ws.WebSocketException, read_headers, HeaderSockMock("data/header02.txt") + WebSocketException, read_headers, HeaderSockMock("data/header02.txt") ) - def testTunnel(self): + def test_tunnel(self): self.assertRaises( - ws.WebSocketProxyException, + WebSocketProxyException, _tunnel, HeaderSockMock("data/header01.txt"), "example.com", @@ -115,7 +114,7 @@ class HttpTest(unittest.TestCase): ("username", "password"), ) self.assertRaises( - ws.WebSocketProxyException, + WebSocketProxyException, _tunnel, HeaderSockMock("data/header02.txt"), "example.com", @@ -124,9 +123,9 @@ class HttpTest(unittest.TestCase): ) @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") - def testConnect(self): + def test_connect(self): # Not currently testing an actual proxy connection, so just check whether proxy errors are raised. This requires internet for a DNS lookup - if ws._http.HAVE_PYTHON_SOCKS: + if HAVE_PYTHON_SOCKS: # Need this check, otherwise case where python_socks is not installed triggers # websocket._exceptions.WebSocketException: Python Socks is needed for SOCKS proxying but is not available self.assertRaises( @@ -245,7 +244,7 @@ class HttpTest(unittest.TestCase): @unittest.skipUnless( TEST_WITH_LOCAL_SERVER, "Tests using local websocket server are disabled" ) - def testProxyConnect(self): + def test_proxy_connect(self): ws = websocket.WebSocket() ws.connect( f"ws://127.0.0.1:{LOCAL_WS_SERVER_PORT}", @@ -290,7 +289,7 @@ class HttpTest(unittest.TestCase): # TODO: Test SOCKS4 and SOCK5 proxies with unit tests @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") - def testSSLopt(self): + def test_sslopt(self): ssloptions = { "check_hostname": False, "server_hostname": "ServerName", @@ -316,7 +315,7 @@ class HttpTest(unittest.TestCase): ws_ssl2.connect("wss://api.bitfinex.com/ws/2") ws_ssl2.close - def testProxyInfo(self): + def test_proxy_info(self): self.assertEqual( proxy_info( http_proxy_host="127.0.0.1", http_proxy_port="8080", proxy_type="http" diff --git a/contrib/python/websocket-client/py3/websocket/tests/test_url.py b/contrib/python/websocket-client/py3/websocket/tests/test_url.py index 792399ebf5..110fdfad70 100644 --- a/contrib/python/websocket-client/py3/websocket/tests/test_url.py +++ b/contrib/python/websocket-client/py3/websocket/tests/test_url.py @@ -9,12 +9,13 @@ from websocket._url import ( get_proxy_info, parse_url, ) +from websocket._exceptions import WebSocketProxyException """ test_url.py websocket - WebSocket client library for Python -Copyright 2023 engn33r +Copyright 2024 engn33r Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -36,7 +37,7 @@ class UrlTest(unittest.TestCase): self.assertTrue(_is_address_in_network("127.1.0.1", "127.0.0.0/8")) self.assertFalse(_is_address_in_network("127.1.0.1", "127.0.0.0/24")) - def testParseUrl(self): + def test_parse_url(self): p = parse_url("ws://www.example.com/r") self.assertEqual(p[0], "www.example.com") self.assertEqual(p[1], 80) @@ -130,9 +131,13 @@ class IsNoProxyHostTest(unittest.TestCase): elif "no_proxy" in os.environ: del os.environ["no_proxy"] - def testMatchAll(self): + def test_match_all(self): self.assertTrue(_is_no_proxy_host("any.websocket.org", ["*"])) self.assertTrue(_is_no_proxy_host("192.168.0.1", ["*"])) + self.assertFalse(_is_no_proxy_host("192.168.0.1", ["192.168.1.1"])) + self.assertFalse( + _is_no_proxy_host("any.websocket.org", ["other.websocket.org"]) + ) self.assertTrue( _is_no_proxy_host("any.websocket.org", ["other.websocket.org", "*"]) ) @@ -142,7 +147,7 @@ class IsNoProxyHostTest(unittest.TestCase): os.environ["no_proxy"] = "other.websocket.org, *" self.assertTrue(_is_no_proxy_host("any.websocket.org", None)) - def testIpAddress(self): + def test_ip_address(self): self.assertTrue(_is_no_proxy_host("127.0.0.1", ["127.0.0.1"])) self.assertFalse(_is_no_proxy_host("127.0.0.2", ["127.0.0.1"])) self.assertTrue( @@ -158,7 +163,7 @@ class IsNoProxyHostTest(unittest.TestCase): self.assertTrue(_is_no_proxy_host("127.0.0.1", None)) self.assertFalse(_is_no_proxy_host("127.0.0.2", None)) - def testIpAddressInRange(self): + def test_ip_address_in_range(self): self.assertTrue(_is_no_proxy_host("127.0.0.1", ["127.0.0.0/8"])) self.assertTrue(_is_no_proxy_host("127.0.0.2", ["127.0.0.0/8"])) self.assertFalse(_is_no_proxy_host("127.1.0.1", ["127.0.0.0/24"])) @@ -168,7 +173,7 @@ class IsNoProxyHostTest(unittest.TestCase): os.environ["no_proxy"] = "127.0.0.0/24" self.assertFalse(_is_no_proxy_host("127.1.0.1", None)) - def testHostnameMatch(self): + def test_hostname_match(self): self.assertTrue(_is_no_proxy_host("my.websocket.org", ["my.websocket.org"])) self.assertTrue( _is_no_proxy_host( @@ -182,7 +187,7 @@ class IsNoProxyHostTest(unittest.TestCase): os.environ["no_proxy"] = "other.websocket.org, my.websocket.org" self.assertTrue(_is_no_proxy_host("my.websocket.org", None)) - def testHostnameMatchDomain(self): + def test_hostname_match_domain(self): self.assertTrue(_is_no_proxy_host("any.websocket.org", [".websocket.org"])) self.assertTrue(_is_no_proxy_host("my.other.websocket.org", [".websocket.org"])) self.assertTrue( @@ -227,10 +232,13 @@ class ProxyInfoTest(unittest.TestCase): elif "no_proxy" in os.environ: del os.environ["no_proxy"] - def testProxyFromArgs(self): - self.assertEqual( - get_proxy_info("echo.websocket.events", False, proxy_host="localhost"), - ("localhost", 0, None), + def test_proxy_from_args(self): + self.assertRaises( + WebSocketProxyException, + get_proxy_info, + "echo.websocket.events", + False, + proxy_host="localhost", ) self.assertEqual( get_proxy_info( @@ -239,10 +247,6 @@ class ProxyInfoTest(unittest.TestCase): ("localhost", 3128, None), ) self.assertEqual( - get_proxy_info("echo.websocket.events", True, proxy_host="localhost"), - ("localhost", 0, None), - ) - self.assertEqual( get_proxy_info( "echo.websocket.events", True, proxy_host="localhost", proxy_port=3128 ), @@ -254,9 +258,10 @@ class ProxyInfoTest(unittest.TestCase): "echo.websocket.events", False, proxy_host="localhost", + proxy_port=9001, proxy_auth=("a", "b"), ), - ("localhost", 0, ("a", "b")), + ("localhost", 9001, ("a", "b")), ) self.assertEqual( get_proxy_info( @@ -273,9 +278,10 @@ class ProxyInfoTest(unittest.TestCase): "echo.websocket.events", True, proxy_host="localhost", + proxy_port=8765, proxy_auth=("a", "b"), ), - ("localhost", 0, ("a", "b")), + ("localhost", 8765, ("a", "b")), ) self.assertEqual( get_proxy_info( @@ -311,7 +317,18 @@ class ProxyInfoTest(unittest.TestCase): (None, 0, None), ) - def testProxyFromEnv(self): + self.assertEqual( + get_proxy_info( + "echo.websocket.events", + True, + proxy_host="localhost", + proxy_port=3128, + no_proxy=[".websocket.events"], + ), + (None, 0, None), + ) + + def test_proxy_from_env(self): os.environ["http_proxy"] = "http://localhost/" self.assertEqual( get_proxy_info("echo.websocket.events", False), ("localhost", None, None) diff --git a/contrib/python/websocket-client/py3/websocket/tests/test_websocket.py b/contrib/python/websocket-client/py3/websocket/tests/test_websocket.py index c3d636426b..b665548cda 100644 --- a/contrib/python/websocket-client/py3/websocket/tests/test_websocket.py +++ b/contrib/python/websocket-client/py3/websocket/tests/test_websocket.py @@ -7,6 +7,7 @@ import unittest from base64 import decodebytes as base64decode import websocket as ws +from websocket._exceptions import WebSocketBadStatusException, WebSocketAddressException from websocket._handshake import _create_sec_websocket_key from websocket._handshake import _validate as _validate_header from websocket._http import read_headers @@ -16,7 +17,7 @@ from websocket._utils import validate_utf8 test_websocket.py websocket - WebSocket client library for Python -Copyright 2023 engn33r +Copyright 2024 engn33r Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -33,7 +34,6 @@ limitations under the License. try: import ssl - from ssl import SSLError except ImportError: # dummy class of SSLError for ssl none-support environment. class SSLError(Exception): @@ -96,24 +96,24 @@ class WebSocketTest(unittest.TestCase): def tearDown(self): pass - def testDefaultTimeout(self): + def test_default_timeout(self): self.assertEqual(ws.getdefaulttimeout(), None) ws.setdefaulttimeout(10) self.assertEqual(ws.getdefaulttimeout(), 10) ws.setdefaulttimeout(None) - def testWSKey(self): + def test_ws_key(self): key = _create_sec_websocket_key() self.assertTrue(key != 24) self.assertTrue("¥n" not in key) - def testNonce(self): + def test_nonce(self): """WebSocket key should be a random 16-byte nonce.""" key = _create_sec_websocket_key() nonce = base64decode(key.encode("utf-8")) self.assertEqual(16, len(nonce)) - def testWsUtils(self): + def test_ws_utils(self): key = "c6b8hTg4EeGb2gQMztV1/g==" required_header = { "upgrade": "websocket", @@ -158,16 +158,12 @@ class WebSocketTest(unittest.TestCase): # This case will print out a logging error using the error() function, but that is expected self.assertEqual(_validate_header(header, key, ["Sub1", "suB2"]), (False, None)) - def testReadHeader(self): - status, header, status_message = read_headers( - HeaderSockMock("data/header01.txt") - ) + def test_read_header(self): + status, header, _ = read_headers(HeaderSockMock("data/header01.txt")) self.assertEqual(status, 101) self.assertEqual(header["connection"], "Upgrade") - status, header, status_message = read_headers( - HeaderSockMock("data/header03.txt") - ) + status, header, _ = read_headers(HeaderSockMock("data/header03.txt")) self.assertEqual(status, 101) self.assertEqual(header["connection"], "Upgrade, Keep-Alive") @@ -176,7 +172,7 @@ class WebSocketTest(unittest.TestCase): ws.WebSocketException, read_headers, HeaderSockMock("data/header02.txt") ) - def testSend(self): + def test_send(self): # TODO: add longer frame data sock = ws.WebSocket() sock.set_mask_key(create_mask_key) @@ -195,7 +191,7 @@ class WebSocketTest(unittest.TestCase): self.assertEqual(sock.send_binary(b"1111111111101"), 19) - def testRecv(self): + def test_recv(self): # TODO: add longer frame data sock = ws.WebSocket() s = sock.sock = SockMock() @@ -211,7 +207,7 @@ class WebSocketTest(unittest.TestCase): self.assertEqual(data, "Hello") @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") - def testIter(self): + def test_iter(self): count = 2 s = ws.create_connection("wss://api.bitfinex.com/ws/2") s.send('{"event": "subscribe", "channel": "ticker"}') @@ -221,11 +217,11 @@ class WebSocketTest(unittest.TestCase): break @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") - def testNext(self): + def test_next(self): sock = ws.create_connection("wss://api.bitfinex.com/ws/2") self.assertEqual(str, type(next(sock))) - def testInternalRecvStrict(self): + def test_internal_recv_strict(self): sock = ws.WebSocket() s = sock.sock = SockMock() s.add_packet(b"foo") @@ -242,7 +238,7 @@ class WebSocketTest(unittest.TestCase): with self.assertRaises(ws.WebSocketConnectionClosedException): sock.frame_buffer.recv_strict(1) - def testRecvTimeout(self): + def test_recv_timeout(self): sock = ws.WebSocket() s = sock.sock = SockMock() s.add_packet(b"\x81") @@ -259,7 +255,7 @@ class WebSocketTest(unittest.TestCase): with self.assertRaises(ws.WebSocketConnectionClosedException): sock.recv() - def testRecvWithSimpleFragmentation(self): + def test_recv_with_simple_fragmentation(self): sock = ws.WebSocket() s = sock.sock = SockMock() # OPCODE=TEXT, FIN=0, MSG="Brevity is " @@ -271,7 +267,7 @@ class WebSocketTest(unittest.TestCase): with self.assertRaises(ws.WebSocketConnectionClosedException): sock.recv() - def testRecvWithFireEventOfFragmentation(self): + def test_recv_with_fire_event_of_fragmentation(self): sock = ws.WebSocket(fire_cont_frame=True) s = sock.sock = SockMock() # OPCODE=TEXT, FIN=0, MSG="Brevity is " @@ -297,7 +293,7 @@ class WebSocketTest(unittest.TestCase): with self.assertRaises(ws.WebSocketConnectionClosedException): sock.recv() - def testClose(self): + def test_close(self): sock = ws.WebSocket() sock.connected = True sock.close @@ -309,14 +305,14 @@ class WebSocketTest(unittest.TestCase): sock.recv() self.assertEqual(sock.connected, False) - def testRecvContFragmentation(self): + def test_recv_cont_fragmentation(self): sock = ws.WebSocket() s = sock.sock = SockMock() # OPCODE=CONT, FIN=1, MSG="the soul of wit" s.add_packet(b"\x80\x8fabcd\x15\n\x06D\x12\r\x16\x08A\r\x05D\x16\x0b\x17") self.assertRaises(ws.WebSocketException, sock.recv) - def testRecvWithProlongedFragmentation(self): + def test_recv_with_prolonged_fragmentation(self): sock = ws.WebSocket() s = sock.sock = SockMock() # OPCODE=TEXT, FIN=0, MSG="Once more unto the breach, " @@ -332,7 +328,7 @@ class WebSocketTest(unittest.TestCase): with self.assertRaises(ws.WebSocketConnectionClosedException): sock.recv() - def testRecvWithFragmentationAndControlFrame(self): + def test_recv_with_fragmentation_and_control_frame(self): sock = ws.WebSocket() sock.set_mask_key(create_mask_key) s = sock.sock = SockMock() @@ -353,7 +349,7 @@ class WebSocketTest(unittest.TestCase): @unittest.skipUnless( TEST_WITH_LOCAL_SERVER, "Tests using local websocket server are disabled" ) - def testWebSocket(self): + def test_websocket(self): s = ws.create_connection(f"ws://127.0.0.1:{LOCAL_WS_SERVER_PORT}") self.assertNotEqual(s, None) s.send("Hello, World") @@ -370,7 +366,7 @@ class WebSocketTest(unittest.TestCase): @unittest.skipUnless( TEST_WITH_LOCAL_SERVER, "Tests using local websocket server are disabled" ) - def testPingPong(self): + def test_ping_pong(self): s = ws.create_connection(f"ws://127.0.0.1:{LOCAL_WS_SERVER_PORT}") self.assertNotEqual(s, None) s.ping("Hello") @@ -378,17 +374,13 @@ class WebSocketTest(unittest.TestCase): s.close() @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") - def testSupportRedirect(self): + def test_support_redirect(self): s = ws.WebSocket() - self.assertRaises( - ws._exceptions.WebSocketBadStatusException, s.connect, "ws://google.com/" - ) + self.assertRaises(WebSocketBadStatusException, s.connect, "ws://google.com/") # Need to find a URL that has a redirect code leading to a websocket @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") - def testSecureWebSocket(self): - import ssl - + def test_secure_websocket(self): s = ws.create_connection("wss://api.bitfinex.com/ws/2") self.assertNotEqual(s, None) self.assertTrue(isinstance(s.sock, ssl.SSLSocket)) @@ -402,7 +394,7 @@ class WebSocketTest(unittest.TestCase): @unittest.skipUnless( TEST_WITH_LOCAL_SERVER, "Tests using local websocket server are disabled" ) - def testWebSocketWithCustomHeader(self): + def test_websocket_with_custom_header(self): s = ws.create_connection( f"ws://127.0.0.1:{LOCAL_WS_SERVER_PORT}", headers={"User-Agent": "PythonWebsocketClient"}, @@ -418,7 +410,7 @@ class WebSocketTest(unittest.TestCase): @unittest.skipUnless( TEST_WITH_LOCAL_SERVER, "Tests using local websocket server are disabled" ) - def testAfterClose(self): + def test_after_close(self): s = ws.create_connection(f"ws://127.0.0.1:{LOCAL_WS_SERVER_PORT}") self.assertNotEqual(s, None) s.close() @@ -430,7 +422,7 @@ class SockOptTest(unittest.TestCase): @unittest.skipUnless( TEST_WITH_LOCAL_SERVER, "Tests using local websocket server are disabled" ) - def testSockOpt(self): + def test_sockopt(self): sockopt = ((socket.IPPROTO_TCP, socket.TCP_NODELAY, 1),) s = ws.create_connection( f"ws://127.0.0.1:{LOCAL_WS_SERVER_PORT}", sockopt=sockopt @@ -442,7 +434,7 @@ class SockOptTest(unittest.TestCase): class UtilsTest(unittest.TestCase): - def testUtf8Validator(self): + def test_utf8_validator(self): state = validate_utf8(b"\xf0\x90\x80\x80") self.assertEqual(state, True) state = validate_utf8( @@ -455,7 +447,7 @@ class UtilsTest(unittest.TestCase): class HandshakeTest(unittest.TestCase): @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") - def test_http_SSL(self): + def test_http_ssl(self): websock1 = ws.WebSocket( sslopt={"cert_chain": ssl.get_default_verify_paths().capath}, enable_multithread=False, @@ -467,7 +459,7 @@ class HandshakeTest(unittest.TestCase): ) @unittest.skipUnless(TEST_WITH_INTERNET, "Internet-requiring tests are disabled") - def testManualHeaders(self): + def test_manual_headers(self): websock3 = ws.WebSocket( sslopt={ "ca_certs": ssl.get_default_verify_paths().cafile, @@ -475,7 +467,7 @@ class HandshakeTest(unittest.TestCase): } ) self.assertRaises( - ws._exceptions.WebSocketBadStatusException, + WebSocketBadStatusException, websock3.connect, "wss://api.bitfinex.com/ws/2", cookie="chocolate", @@ -491,16 +483,14 @@ class HandshakeTest(unittest.TestCase): }, ) - def testIPv6(self): + def test_ipv6(self): websock2 = ws.WebSocket() self.assertRaises(ValueError, websock2.connect, "2001:4860:4860::8888") - def testBadURLs(self): + def test_bad_urls(self): websock3 = ws.WebSocket() self.assertRaises(ValueError, websock3.connect, "ws//example.com") - self.assertRaises( - ws.WebSocketAddressException, websock3.connect, "ws://example" - ) + self.assertRaises(WebSocketAddressException, websock3.connect, "ws://example") self.assertRaises(ValueError, websock3.connect, "example.com") |