def test_keep_alive_http10(transport): msg = protocol.Response(transport, 200, http_version=(1, 0)) assert not msg.keepalive assert not msg.keep_alive() msg = protocol.Response(transport, 200, http_version=(1, 1)) assert msg.keepalive is None
def test_keep_alive_http10(self): msg = protocol.Response(self.transport, 200, http_version=(1, 0)) self.assertFalse(msg.keepalive) self.assertFalse(msg.keep_alive()) msg = protocol.Response(self.transport, 200, http_version=(1, 1)) self.assertIsNone(msg.keepalive)
def test_add_headers_upgrade_websocket(transport): msg = protocol.Response(transport, 200) msg.add_headers(('upgrade', 'test')) assert not msg.websocket assert [('Upgrade', 'test')] == list(msg.headers.items()) msg = protocol.Response(transport, 200) msg.add_headers(('upgrade', 'websocket')) assert msg.websocket assert [('Upgrade', 'websocket')] == list(msg.headers.items())
def test_default_headers_chunked(transport): msg = protocol.Response(transport, 200) msg._add_default_headers() assert 'TRANSFER-ENCODING' not in msg.headers msg = protocol.Response(transport, 200) msg.enable_chunked_encoding() msg.send_headers() assert 'TRANSFER-ENCODING' in msg.headers
def test_default_headers_chunked(stream): msg = protocol.Response(stream, 200) msg._add_default_headers() assert 'TRANSFER-ENCODING' not in msg.headers msg = protocol.Response(stream, 200) msg.enable_chunking() msg.send_headers() assert 'TRANSFER-ENCODING' in msg.headers
def test_default_headers_chunked(self): msg = protocol.Response(self.transport, 200) msg._add_default_headers() headers = [r for r, _ in msg.headers.items()] self.assertNotIn('TRANSFER-ENCODING', headers) msg = protocol.Response(self.transport, 200) msg.enable_chunked_encoding() msg.send_headers() headers = [r for r, _ in msg.headers.items()] self.assertIn('TRANSFER-ENCODING', headers)
def test_default_headers_chunked(self): msg = protocol.Response(self.transport, 200) msg._add_default_headers() headers = [r for r, _ in msg.headers] self.assertNotIn('TRANSFER-ENCODING', headers) msg = protocol.Response(self.transport, 200) msg.force_chunked() msg._add_default_headers() headers = [r for r, _ in msg.headers] self.assertIn('TRANSFER-ENCODING', headers)
def test_default_headers_connection_keep_alive(transport): msg = protocol.Response(transport, 200) msg.keepalive = True msg._add_default_headers() headers = [r for r in msg.headers.items() if r[0] == 'CONNECTION'] assert [('CONNECTION', 'keep-alive')] == headers
def test_default_headers_connection_keep_alive(self): msg = protocol.Response(self.transport, 200) msg.keepalive = True msg._add_default_headers() headers = [r for r in msg.headers if r[0] == 'CONNECTION'] self.assertEqual([('CONNECTION', 'keep-alive')], headers)
def test_add_header_with_spaces(self): msg = protocol.Response(self.transport, 200) self.assertEqual([], list(msg.headers)) msg.add_header('content-type', ' plain/html ') self.assertEqual( [('CONTENT-TYPE', 'plain/html')], list(msg.headers.items()))
def test_default_headers_connection_keep_alive_http_10(transport): msg = protocol.Response(transport, 200, http_version=protocol.HttpVersion10) msg.keepalive = True msg._add_default_headers() assert msg.headers['Connection'] == 'keep-alive'
def test_default_headers_http_10(transport): msg = protocol.Response(transport, 200, http_version=protocol.HttpVersion10) msg._add_default_headers() assert 'DATE' in msg.headers assert 'keep-alive' == msg.headers['CONNECTION']
def test_default_headers_connection_close(transport): msg = protocol.Response(transport, 200) msg.force_close() msg._add_default_headers() headers = [r for r in msg.headers.items() if r[0] == 'CONNECTION'] assert [('CONNECTION', 'close')] == headers
def test_send_headers_nomore_add(transport): msg = protocol.Response(transport, 200) msg.add_headers(('content-type', 'plain/html')) msg.send_headers() with pytest.raises(AssertionError): msg.add_header('content-type', 'plain/html')
def test_start_response_with_reason(self): msg = protocol.Response(self.transport, 333, close=True, reason="My Reason") self.assertEqual(msg.status, 333) self.assertEqual(msg.reason, "My Reason") self.assertEqual(msg.status_line, 'HTTP/1.1 333 My Reason\r\n')
def test_default_headers_connection_keep_alive_11(transport): msg = protocol.Response(transport, 200, http_version=protocol.HttpVersion11) msg.keepalive = True msg._add_default_headers() assert 'Connection' not in msg.headers
def test_dont_override_response_headers_with_default_values(self): msg = protocol.Response(self.transport, 200, http_version=(1, 0)) msg.add_header('DATE', 'now') msg.add_header('SERVER', 'custom') msg._add_default_headers() self.assertEqual('custom', msg.headers['SERVER']) self.assertEqual('now', msg.headers['DATE'])
def test_start_response_with_reason(transport): msg = protocol.Response(transport, 333, close=True, reason="My Reason") assert msg.status == 333 assert msg.reason == "My Reason" assert msg.status_line == 'HTTP/1.1 333 My Reason\r\n'
def test_default_headers(self): msg = protocol.Response(self.transport, 200) msg._add_default_headers() headers = [r for r, _ in msg.headers] self.assertIn('DATE', headers) self.assertIn('CONNECTION', headers)
def test_dont_override_response_headers_with_default_values(transport): msg = protocol.Response(transport, 200, http_version=(1, 0)) msg.add_header('DATE', 'now') msg.add_header('SERVER', 'custom') msg._add_default_headers() assert 'custom' == msg.headers['SERVER'] assert 'now' == msg.headers['DATE']
def test_default_headers_connection_close(self): msg = protocol.Response(self.transport, 200) msg.force_close() msg._add_default_headers() headers = [r for r in msg.headers if r[0] == 'CONNECTION'] self.assertEqual([('CONNECTION', 'close')], headers)
def test_default_headers_connection_upgrade(self): msg = protocol.Response(self.transport, 200) msg.upgrade = True msg._add_default_headers() headers = [r for r in msg.headers.items() if r[0] == 'CONNECTION'] self.assertEqual([('CONNECTION', 'upgrade')], headers)
def test_default_headers(transport): msg = protocol.Response(transport, 200) msg._add_default_headers() headers = [r for r, _ in msg.headers.items()] assert 'DATE' in headers assert 'CONNECTION' in headers
def test_start_response(self): msg = protocol.Response(self.transport, 200, close=True) self.assertIs(msg.transport, self.transport) self.assertEqual(msg.status, 200) self.assertTrue(msg.closing) self.assertEqual(msg.status_line, 'HTTP/1.1 200 OK\r\n')
def test_add_headers_upgrade_websocket(self): msg = protocol.Response(self.transport, 200) msg.add_headers(('upgrade', 'test')) self.assertEqual([], list(msg.headers)) msg.add_headers(('upgrade', 'websocket')) self.assertEqual([('UPGRADE', 'websocket')], list(msg.headers))
def test_keep_alive(transport): msg = protocol.Response(transport, 200, close=True) assert not msg.keep_alive() msg.keepalive = True assert msg.keep_alive() msg.force_close() assert not msg.keep_alive()
def test_keep_alive(self): msg = protocol.Response(self.transport, 200, close=True) self.assertFalse(msg.keep_alive()) msg.keepalive = True self.assertTrue(msg.keep_alive()) msg.force_close() self.assertFalse(msg.keep_alive())
def test_write_auto_send_headers(self): msg = protocol.Response(self.transport, 200, http_version=(1, 0)) msg._send_headers = True msg.write(b'data1') self.assertTrue(msg.headers_sent) # cleanup msg.writer.close()
def test_prepare_eof(self): msg = protocol.Response(self.transport, 200, http_version=(1, 0)) eof = msg._write_eof_payload = unittest.mock.Mock() eof.return_value = iter([1, 2, 3]) msg.send_headers() self.assertTrue(eof.called)
def test_prepare_chunked_no_length(self): msg = protocol.Response(self.transport, 200) chunked = msg._write_chunked_payload = unittest.mock.Mock() chunked.return_value = iter([1, 2, 3]) msg.send_headers() self.assertTrue(chunked.called)