Exemple #1
0
def test_invalid_header():
    req = Request()
    req._write(open('%s/invalid_header.txt' % requestdir).read())
    req._parse()

    assert len(req.headers) == 1
    assert req.headers['Host'] == ['localhost:9999']
Exemple #2
0
def test_get_params():
    req = Request()
    req._write(open('%s/get_params.txt' % requestdir).read())
    req._parse()

    assert len(req.get) == 2
    assert req.get['test'] == ['hello']
    assert req.get['foo'] == ['bar']
Exemple #3
0
def test_single_file():
    req = Request()
    req._input = open('%s/file.txt' % requestdir)
    req._parse()

    assert req.post == {}
    assert len(req.files) == 1
    assert isinstance(req.files[0], UploadedFile)
    assert len(req.files[0].file.read()) == 21743
Exemple #4
0
def test_single_file():
    req = Request()
    req._input = open('%s/file.txt' % requestdir)
    req._parse()

    assert req.post == {}
    assert len(req.files) == 1
    assert isinstance(req.files[0], UploadedFile)
    assert len(req.files[0].file.read()) == 21743
Exemple #5
0
def test_cookies():
    req = Request()

    with open('%s/cookie.txt' % requestdir) as f:
        req._write(f.read())
        req._parse()

        assert len(req.cookies) == 2
        assert req.cookies[0].name == 'name'
        assert req.cookies[0].value == 'value'
        assert req.cookies[1].name == 'name2'
        assert req.cookies[1].value == 'value2'
Exemple #6
0
def test_data():
    req = Request()
    req._input = open('%s/data.txt' % requestdir)
    req._parse()

    expected = {
        'text1': 'foo',
        'text2': 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc porta tempus venenatis. Proin lobortis tempor ante, id ornare nisl dignissim vitae. Nullam in placerat metus.\r\n\r\nDonec nisi nisi, ultricies cursus enim ac, tempor sodales sem. Sed sit amet fermentum nisi, id fringilla libero. Praesent eget ante lacus. Nunc pretium velit est, sed lacinia eros lacinia a. Donec in neque tempus, vehicula odio ac, condimentum mi. Nulla id tristique nisi, ac consequat eros.'}

    assert len(req.post) == 2
    for key in expected:
        assert req.post[key][0] == expected[key]
Exemple #7
0
def test_file_and_data():
    req = Request()
    req._input = open('%s/mixed.txt' % requestdir)
    req._parse()

    assert len(req.post) == 1
    assert len(req.files) == 1

    assert req.post['text1'][0] == 'asdf'

    assert isinstance(req.files[0], UploadedFile)
    assert len(req.files[0].file.read()) == 21743
    assert req.files[0].filename == 'panda-baby.jpg'
Exemple #8
0
def test_file_and_data():
    req = Request()
    req._input = open('%s/mixed.txt' % requestdir)
    req._parse()

    assert len(req.post) == 1
    assert len(req.files) == 1

    assert req.post['text1'][0] == 'asdf'

    assert isinstance(req.files[0], UploadedFile)
    assert len(req.files[0].file.read()) == 21743
    assert req.files[0].filename == 'panda-baby.jpg'
Exemple #9
0
def test_data():
    req = Request()
    req._input = open('%s/data.txt' % requestdir)
    req._parse()

    expected = {
        'text1':
        'foo',
        'text2':
        'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc porta tempus venenatis. Proin lobortis tempor ante, id ornare nisl dignissim vitae. Nullam in placerat metus.\r\n\r\nDonec nisi nisi, ultricies cursus enim ac, tempor sodales sem. Sed sit amet fermentum nisi, id fringilla libero. Praesent eget ante lacus. Nunc pretium velit est, sed lacinia eros lacinia a. Donec in neque tempus, vehicula odio ac, condimentum mi. Nulla id tristique nisi, ac consequat eros.'
    }

    assert len(req.post) == 2
    for key in expected:
        assert req.post[key][0] == expected[key]
Exemple #10
0
def test_multiple_files():
    req = Request()
    req._input = open('%s/files.txt' % requestdir)
    req._parse()

    assert len(req.post) == 0
    assert len(req.files) == 2

    assert isinstance(req.files[0], UploadedFile)
    assert len(req.files[0].file.read()) == 21743
    assert req.files[0].filename == 'panda-baby.jpg'

    assert isinstance(req.files[1], UploadedFile)
    assert len(req.files[1].file.read()) == 16970
    assert req.files[1].filename == 'puppy-small.jpg'
Exemple #11
0
def test_multiple_files():
    req = Request()
    req._input = open('%s/files.txt' % requestdir)
    req._parse()

    assert len(req.post) == 0
    assert len(req.files) == 2

    assert isinstance(req.files[0], UploadedFile)
    assert len(req.files[0].file.read()) == 21743
    assert req.files[0].filename == 'panda-baby.jpg'

    assert isinstance(req.files[1], UploadedFile)
    assert len(req.files[1].file.read()) == 16970
    assert req.files[1].filename == 'puppy-small.jpg'
def test_static_file_handler():
    req = Request()
    handler = StaticFileHandler()
    response = handler.get(req, 'panda-baby.jpg', staticdir)
    assert response.headers['Content-Type'] == ['image/jpeg']
    s = str(response)
    image_data = s[s.index('\r\n\r\n') + 4:]
    assert len(image_data) == 21743
Exemple #13
0
def test_headers():
    req = Request()
    req._write(open('%s/mixed.txt' % requestdir).read())
    req._parse()

    headers = {
        'Host': 'localhost:9999',
        'Connection': 'keep-alive',
        'Content-Length': '22028',
        'Cache-Control': 'max-age=0',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Origin': 'null',
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.62 Safari/537.36',
        'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundarygQtUpZGpES2gHbcb',
        'Accept-Encoding': 'gzip,deflate,sdch',
        'Accept-Language': 'en-US,en;q=0.8',
    }

    for k, v in headers.items():
        assert req.headers[k] == [v]
Exemple #14
0
def test_invalid_header():
    req = Request()
    req._write(open('%s/invalid_header.txt' % requestdir).read())
    req._parse()

    assert len(req.headers) == 1
    assert req.headers['Host'] == ['localhost:9999']
Exemple #15
0
def test_get_params():
    req = Request()
    req._write(open('%s/get_params.txt' % requestdir).read())
    req._parse()

    assert len(req.get) == 2
    assert req.get['test'] == ['hello']
    assert req.get['foo'] == ['bar']
Exemple #16
0
def test_has_more_data():
    req = Request()

    with open('%s/mixed.txt' % requestdir) as f:
        # First only write headers to request
        while True:
            line = f.readline()
            req._write(line)
            if not line.strip():
                break

        # Headers contain content-length, so there must be more data
        assert req._has_more_data() == True

        # Write rest of request
        data = f.read()
        req._write(data)

        assert req._has_more_data() == False
Exemple #17
0
def test_cookies():
    req = Request()

    with open('%s/cookie.txt' % requestdir) as f:
        req._write(f.read())
        req._parse()

        assert len(req.cookies) == 2
        assert req.cookies[0].name == 'name'
        assert req.cookies[0].value == 'value'
        assert req.cookies[1].name == 'name2'
        assert req.cookies[1].value == 'value2'
Exemple #18
0
def test_has_more_data():
    req = Request()

    with open('%s/mixed.txt' % requestdir) as f:
        # First only write headers to request
        while True:
            line = f.readline()
            req._write(line)
            if not line.strip():
                break

        # Headers contain content-length, so there must be more data
        assert req._has_more_data() == True

        # Write rest of request
        data = f.read()
        req._write(data)

        assert req._has_more_data() == False
Exemple #19
0
def test_headers():
    req = Request()
    req._write(open('%s/mixed.txt' % requestdir).read())
    req._parse()

    headers = {
        'Host': 'localhost:9999',
        'Connection': 'keep-alive',
        'Content-Length': '22028',
        'Cache-Control': 'max-age=0',
        'Accept':
        'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
        'Origin': 'null',
        'User-Agent':
        'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.62 Safari/537.36',
        'Content-Type':
        'multipart/form-data; boundary=----WebKitFormBoundarygQtUpZGpES2gHbcb',
        'Accept-Encoding': 'gzip,deflate,sdch',
        'Accept-Language': 'en-US,en;q=0.8',
    }

    for k, v in headers.items():
        assert req.headers[k] == [v]
def test_static_file_handler_directory():
    req = Request()
    handler = StaticFileHandler()
    response = handler.get(req, 'empty', staticdir)
    assert response.status_code == 404
Exemple #21
0
def test_execution_time():
    req = Request()
    req._write(open('%s/get_params.txt' % requestdir).read())
    req._parse()

    assert req._execution_time >= 0
Exemple #22
0
def test_get_message_start():
    req = Request()
    req._write(open('%s/mixed.txt' % requestdir).read())
    req._parse()

    assert req._get_message_start() == 487
Exemple #23
0
def test_get_message_start():
    req = Request()
    req._write(open('%s/mixed.txt' % requestdir).read())
    req._parse()

    assert req._get_message_start() == 487
Exemple #24
0
def test_x_forwarded_for():
    req = Request()
    with open('%s/x_forwarded_for.txt' % requestdir) as f:
        req._write(f.read())
        req._parse()
        assert req.ip == '9.9.9.9'
Exemple #25
0
def test_message_bytes():
    req = Request()
    req._write(open('%s/mixed.txt' % requestdir).read())
    req._parse()

    assert req._message_bytes == 22028
Exemple #26
0
def test_x_real_ip():
    req = Request()
    with open('%s/x_real_ip.txt' % requestdir) as f:
        req._write(f.read())
        req._parse()
        assert req.ip == '9.9.9.9'
Exemple #27
0
def test_execution_time():
    req = Request()
    req._write(open('%s/get_params.txt' % requestdir).read())
    req._parse()

    assert req._execution_time >= 0
def test_static_file_handler_404():
    req = Request()
    handler = StaticFileHandler()
    response = handler.get(req, 'doesnotexist.jpg', staticdir)
    assert response.status_code == 404
Exemple #29
0
def test_x_forwarded_for():
    req = Request()
    with open('%s/x_forwarded_for.txt' % requestdir) as f:
        req._write(f.read())
        req._parse()
        assert req.ip == '9.9.9.9'
Exemple #30
0
def test_message_bytes():
    req = Request()
    req._write(open('%s/mixed.txt' % requestdir).read())
    req._parse()

    assert req._message_bytes == 22028
Exemple #31
0
def test_x_real_ip():
    req = Request()
    with open('%s/x_real_ip.txt' % requestdir) as f:
        req._write(f.read())
        req._parse()
        assert req.ip == '9.9.9.9'