Source code

Revision control

Copy as Markdown

Other Tools

import unittest
from websockets.datastructures import *
class MultipleValuesErrorTests(unittest.TestCase):
def test_multiple_values_error_str(self):
self.assertEqual(str(MultipleValuesError("Connection")), "'Connection'")
self.assertEqual(str(MultipleValuesError()), "")
class HeadersTests(unittest.TestCase):
def setUp(self):
self.headers = Headers([("Connection", "Upgrade"), ("Server", "websockets")])
def test_init(self):
self.assertEqual(
Headers(),
Headers(),
)
def test_init_from_kwargs(self):
self.assertEqual(
Headers(connection="Upgrade", server="websockets"),
self.headers,
)
def test_init_from_headers(self):
self.assertEqual(
Headers(self.headers),
self.headers,
)
def test_init_from_headers_and_kwargs(self):
self.assertEqual(
Headers(Headers(connection="Upgrade"), server="websockets"),
self.headers,
)
def test_init_from_mapping(self):
self.assertEqual(
Headers({"Connection": "Upgrade", "Server": "websockets"}),
self.headers,
)
def test_init_from_mapping_and_kwargs(self):
self.assertEqual(
Headers({"Connection": "Upgrade"}, server="websockets"),
self.headers,
)
def test_init_from_iterable(self):
self.assertEqual(
Headers([("Connection", "Upgrade"), ("Server", "websockets")]),
self.headers,
)
def test_init_from_iterable_and_kwargs(self):
self.assertEqual(
Headers([("Connection", "Upgrade")], server="websockets"),
self.headers,
)
def test_init_multiple_positional_arguments(self):
with self.assertRaises(TypeError):
Headers(Headers(connection="Upgrade"), Headers(server="websockets"))
def test_str(self):
self.assertEqual(
str(self.headers), "Connection: Upgrade\r\nServer: websockets\r\n\r\n"
)
def test_repr(self):
self.assertEqual(
repr(self.headers),
"Headers([('Connection', 'Upgrade'), ('Server', 'websockets')])",
)
def test_copy(self):
self.assertEqual(repr(self.headers.copy()), repr(self.headers))
def test_serialize(self):
self.assertEqual(
self.headers.serialize(),
b"Connection: Upgrade\r\nServer: websockets\r\n\r\n",
)
def test_contains(self):
self.assertIn("Server", self.headers)
def test_contains_case_insensitive(self):
self.assertIn("server", self.headers)
def test_contains_not_found(self):
self.assertNotIn("Date", self.headers)
def test_contains_non_string_key(self):
self.assertNotIn(42, self.headers)
def test_iter(self):
self.assertEqual(set(iter(self.headers)), {"connection", "server"})
def test_len(self):
self.assertEqual(len(self.headers), 2)
def test_getitem(self):
self.assertEqual(self.headers["Server"], "websockets")
def test_getitem_case_insensitive(self):
self.assertEqual(self.headers["server"], "websockets")
def test_getitem_key_error(self):
with self.assertRaises(KeyError):
self.headers["Upgrade"]
def test_setitem(self):
self.headers["Upgrade"] = "websocket"
self.assertEqual(self.headers["Upgrade"], "websocket")
def test_setitem_case_insensitive(self):
self.headers["upgrade"] = "websocket"
self.assertEqual(self.headers["Upgrade"], "websocket")
def test_delitem(self):
del self.headers["Connection"]
with self.assertRaises(KeyError):
self.headers["Connection"]
def test_delitem_case_insensitive(self):
del self.headers["connection"]
with self.assertRaises(KeyError):
self.headers["Connection"]
def test_eq(self):
other_headers = Headers([("Connection", "Upgrade"), ("Server", "websockets")])
self.assertEqual(self.headers, other_headers)
def test_eq_case_insensitive(self):
other_headers = Headers(connection="Upgrade", server="websockets")
self.assertEqual(self.headers, other_headers)
def test_eq_not_equal(self):
other_headers = Headers([("Connection", "close"), ("Server", "websockets")])
self.assertNotEqual(self.headers, other_headers)
def test_eq_other_type(self):
self.assertNotEqual(
self.headers, "Connection: Upgrade\r\nServer: websockets\r\n\r\n"
)
def test_clear(self):
self.headers.clear()
self.assertFalse(self.headers)
self.assertEqual(self.headers, Headers())
def test_get_all(self):
self.assertEqual(self.headers.get_all("Connection"), ["Upgrade"])
def test_get_all_case_insensitive(self):
self.assertEqual(self.headers.get_all("connection"), ["Upgrade"])
def test_get_all_no_values(self):
self.assertEqual(self.headers.get_all("Upgrade"), [])
def test_raw_items(self):
self.assertEqual(
list(self.headers.raw_items()),
[("Connection", "Upgrade"), ("Server", "websockets")],
)
class MultiValueHeadersTests(unittest.TestCase):
def setUp(self):
self.headers = Headers([("Server", "Python"), ("Server", "websockets")])
def test_init_from_headers(self):
self.assertEqual(
Headers(self.headers),
self.headers,
)
def test_init_from_headers_and_kwargs(self):
self.assertEqual(
Headers(Headers(server="Python"), server="websockets"),
self.headers,
)
def test_str(self):
self.assertEqual(
str(self.headers), "Server: Python\r\nServer: websockets\r\n\r\n"
)
def test_repr(self):
self.assertEqual(
repr(self.headers),
"Headers([('Server', 'Python'), ('Server', 'websockets')])",
)
def test_copy(self):
self.assertEqual(repr(self.headers.copy()), repr(self.headers))
def test_serialize(self):
self.assertEqual(
self.headers.serialize(),
b"Server: Python\r\nServer: websockets\r\n\r\n",
)
def test_iter(self):
self.assertEqual(set(iter(self.headers)), {"server"})
def test_len(self):
self.assertEqual(len(self.headers), 1)
def test_getitem_multiple_values_error(self):
with self.assertRaises(MultipleValuesError):
self.headers["Server"]
def test_setitem(self):
self.headers["Server"] = "redux"
self.assertEqual(
self.headers.get_all("Server"), ["Python", "websockets", "redux"]
)
def test_delitem(self):
del self.headers["Server"]
with self.assertRaises(KeyError):
self.headers["Server"]
def test_get_all(self):
self.assertEqual(self.headers.get_all("Server"), ["Python", "websockets"])
def test_raw_items(self):
self.assertEqual(
list(self.headers.raw_items()),
[("Server", "Python"), ("Server", "websockets")],
)