Пример #1
0
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')
Пример #2
0
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)
Пример #3
0
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
Пример #4
0
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')
Пример #5
0
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'] == ''
Пример #6
0
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
Пример #7
0
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'))
Пример #8
0
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)
Пример #9
0
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'
Пример #10
0
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'
Пример #11
0
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
Пример #12
0
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')
Пример #13
0
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')
Пример #14
0
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')
Пример #15
0
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')
Пример #16
0
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
Пример #17
0
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
Пример #18
0
def test_response_blank():
    r = http.Response('\r\n\n\n')
    assert r.full_response == ''