def test_response_delete_cookie(): r = http.Response(('HTTP/1.1 200 OK\r\n' 'Content-Length: 0\r\n' 'Set-Cookie: foo=bar\r\n\r\n')) r.delete_cookie('foo') assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'Content-Length: 0\r\n\r\n') r = http.Response(('HTTP/1.1 200 OK\r\n' 'Content-Length: 0\r\n' 'Set-Cookie: foo=bar\r\n' 'Set-Cookie: foo=baz\r\n\r\n')) r.delete_cookie('foo') assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'Content-Length: 0\r\n\r\n')
def test_response_update_from_objects_cookies(): r = http.Response(('HTTP/1.1 200 OK\r\n' 'Set-Cookie: foo=bar\r\n' 'Set-Cookie: baz=buzz\r\n' 'Header: out of f*****g nowhere\r\n' 'Set-Cookie: foo=buzz\r\n' '\r\n')) expected_pairs = [('foo', 'bar'), ('baz', 'buzz'), ('foo', 'buzz')] check_response_cookies(expected_pairs, r) new_pairs = [('foo', http.ResponseCookie('foo=banana')), ('baz', http.ResponseCookie('baz=buzz')), ('scooby', http.ResponseCookie('scooby=doo')), ('foo', http.ResponseCookie('foo=boo'))] r.cookies.clear() r.cookies.add_pairs(new_pairs) assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'Header: out of f*****g nowhere\r\n' 'Set-Cookie: foo=banana\r\n' 'Set-Cookie: baz=buzz\r\n' 'Set-Cookie: scooby=doo\r\n' 'Set-Cookie: foo=boo\r\n' '\r\n') expected_pairs = [('foo', 'banana'), ('baz', 'buzz'), ('scooby', 'doo'), ('foo', 'boo')] check_response_cookies(expected_pairs, r)
def test_response_early_completion(): r = http.Response() r.start_line = 'HTTP/1.1 200 OK' r.add_line('Content-Length: 0') assert not r.complete r.add_line('') assert r.complete
def test_response_newlines(): r = http.Response(('HTTP/1.1 200 OK\n' 'Content-Length: 4\n\r\n' 'AAAA')) assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'Content-Length: 4\r\n\r\n' 'AAAA')
def test_response_blank_headers(): r = http.Response(('HTTP/1.1 200 OK\r\n' 'Header: \r\n' 'Header2:\r\n')) assert r.headers['header'] == '' assert r.headers['header2'] == ''
def test_request_to_json(): r = http.Request() r.start_line = 'GET / HTTP/1.1' r.headers['content-length'] = 500 r.tags = {'foo', 'bar'} r.body = 'AAAA' r.reqid = '1' rsp = http.Response() rsp.start_line = 'HTTP/1.1 200 OK' rsp.rspid = '2' r.response = rsp expected_reqdata = { 'full_message': unicode(base64.b64encode(r.full_request)), 'response_id': str(rsp.rspid), 'port': 80, 'is_ssl': False, 'tags': ['foo', 'bar'], 'reqid': str(r.reqid), 'host': '', } assert json.loads(r.to_json()) == expected_reqdata
def test_response_update_content_length(): r = http.Response(('HTTP/1.1 200 OK\r\n' 'Content-Length: 4\r\n\r\n' 'AAAAAAAAAA'), update_content_length=True) assert r.full_response == (('HTTP/1.1 200 OK\r\n' 'Content-Length: 10\r\n\r\n' 'AAAAAAAAAA'))
def test_response_repeated_cookies(): r = http.Response(('HTTP/1.1 200 OK\r\n' 'Set-Cookie: foo=bar\r\n' 'Set-Cookie: baz=buzz\r\n' 'Set-Cookie: foo=buzz\r\n' '\r\n')) expected_pairs = [('foo', 'bar'), ('baz', 'buzz'), ('foo', 'buzz')] check_response_cookies(expected_pairs, r)
def test_response_update_modified_headers(): r = http.Response() r.start_line = 'HTTP/1.1 200 OK' r.headers['content-length'] = '500' r.body = 'AAAA' assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'content-length: 4\r\n\r\n' 'AAAA') assert r.headers['content-length'] == '4'
def test_response_update_statusline(): r = http.Response() r.start_line = 'HTTP/1.1 200 OK' assert r.version == 'HTTP/1.1' assert r.response_code == 200 assert r.response_text == 'OK' assert not r.complete assert r.full_response == 'HTTP/1.1 200 OK\r\n\r\n'
def test_response_to_json(): rsp = http.Response() rsp.status_line = 'HTTP/1.1 200 OK' rsp.rspid = 2 expected_reqdata = {'full_response': base64.b64encode(rsp.full_response), 'rspid': rsp.rspid, #'tag': r.tag, } assert json.loads(rsp.to_json()) == expected_reqdata
def test_response_update_cookies(): r = http.Response() r.start_line = 'HTTP/1.1 200 OK' # Test by adding headers r.headers['Set-Cookie'] = 'abc=123' assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'Set-Cookie: abc=123\r\n\r\n') assert r.cookies['abc'].val == '123' r.headers.append('Set-Cookie', 'abc=456') assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'Set-Cookie: abc=123\r\n' 'Set-Cookie: abc=456\r\n\r\n') assert r.cookies['abc'].val == '456' r = http.Response() r.start_line = 'HTTP/1.1 200 OK' # Test by adding cookie objects c = http.ResponseCookie('abc=123; secure') r.cookies['abc'] = c assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'Set-Cookie: abc=123; secure\r\n\r\n')
def test_copy_response(): r = http.Response(('HTTP/1.1 200 OK\r\n' 'Content-Length: 4\r\n\r\n' 'AAAA')) assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'Content-Length: 4\r\n\r\n' 'AAAA') r2 = copy.copy(r) assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'Content-Length: 4\r\n\r\n' 'AAAA')
def test_response_update_headers(): r = http.Response() r.start_line = 'HTTP/1.1 200 OK' r.headers['Test-Header'] = 'Test Value' r.headers['Other-Header'] = 'Other Value' assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'Test-Header: Test Value\r\n' 'Other-Header: Other Value\r\n\r\n') r.headers.append('Test-Header', 'Other Test Value') assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'Test-Header: Test Value\r\n' 'Other-Header: Other Value\r\n' 'Test-Header: Other Test Value\r\n\r\n')
def test_response_update_from_objects_cookies_replace(): r = http.Response(('HTTP/1.1 200 OK\r\n' 'Set-Cookie: foo=bar\r\n' 'Set-Cookie: baz=buzz\r\n' 'Header: out of f*****g nowhere\r\n' 'Set-Cookie: foo=buzz\r\n' '\r\n')) expected_pairs = [('foo', 'bar'), ('baz', 'buzz'), ('foo', 'buzz')] check_response_cookies(expected_pairs, r) r.cookies['foo'] = http.ResponseCookie('foo=banana') assert r.full_response == ('HTTP/1.1 200 OK\r\n' 'Set-Cookie: foo=banana\r\n' 'Set-Cookie: baz=buzz\r\n' 'Header: out of f*****g nowhere\r\n' '\r\n')
def test_request_to_json(): r = http.Request() r.status_line = 'GET / HTTP/1.1' r.headers['content-length'] = 500 r.tags = ['foo', 'bar'] r.raw_data = 'AAAA' r.reqid = '1' rsp = http.Response() rsp.status_line = 'HTTP/1.1 200 OK' rsp.rspid = '2' r.response = rsp expected_reqdata = {u'full_request': unicode(base64.b64encode(r.full_request)), u'response_id': str(rsp.rspid), u'port': 80, u'is_ssl': False, u'tags': ['foo', 'bar'], u'reqid': str(r.reqid), } assert json.loads(r.to_json()) == expected_reqdata
def test_response_short_statusline(): r = http.Response('HTTP/1.1 407\r\n\r\n') assert r.status_line == 'HTTP/1.1 407' assert r.response_text == '' assert r.version == 'HTTP/1.1' assert r.response_code == 407
def test_response_blank(): r = http.Response('\r\n\n\n') assert r.full_response == ''