Esempio n. 1
0
def test_message_build_chunked():
    raw = ('foobar\r\n' 'a: b\r\n' 'Content-Length: 100\r\n\r\n')
    raw += 'A' * 100
    m = http.HTTPMessage()
    m.add_line('foobar')
    m.add_line('a: b')
    m.add_line('Transfer-Encoding: chunked')
    m.add_line('')
    assert not m.complete
    m.add_data('%x\r\n' % 50)
    m.add_data('A' * 50)
    m.add_data('\r\n')
    m.add_data('%x\r\n' % 50)
    m.add_data('A' * 50)
    m.add_data('\r\n')
    m.add_data('0\r\n')
    assert m.complete
    assert m.malformed == False
    assert m.start_line == 'foobar'
    assert m.body == 'A' * 100
    assert m.headers.all_pairs() == [('a', 'b'), ('Content-Length', '100')]
    assert m.headers['A'] == 'b'
    assert m.headers_section == ('foobar\r\n'
                                 'a: b\r\n'
                                 'Content-Length: 100\r\n\r\n')
    assert m.full_message == raw
Esempio n. 2
0
def test_message_badheader():
    raw = ('startline\r\n'
           'a: b\r\n'
           'Content-Encoding\r\n'
           'd: e\r\n'
           'f:g\r\n'
           '\r\n')
    m = http.HTTPMessage(raw)
    assert m.headers['a'] == 'b'
    assert m.headers['content-encoding'] is None
    assert m.headers['f'] == 'g'
Esempio n. 3
0
def test_message_simple():
    raw = ('foobar\r\n' 'a: b\r\n' 'Content-Length: 100\r\n\r\n')
    raw += 'A' * 100
    m = http.HTTPMessage(raw)
    assert m.complete
    assert m.malformed == False
    assert m.start_line == 'foobar'
    assert m.body == 'A' * 100
    assert m.headers.all_pairs() == [('a', 'b'), ('Content-Length', '100')]
    assert m.headers['A'] == 'b'
    assert m.headers_section == ('foobar\r\n'
                                 'a: b\r\n'
                                 'Content-Length: 100\r\n\r\n')
    assert m.full_message == raw