diff options
Diffstat (limited to 'test/test_http.py')
-rw-r--r-- | test/test_http.py | 40 |
1 files changed, 28 insertions, 12 deletions
diff --git a/test/test_http.py b/test/test_http.py index 0b83e65a..a6161fbc 100644 --- a/test/test_http.py +++ b/test/test_http.py @@ -169,16 +169,20 @@ def test_parse_init_http(): class TestReadHeaders: + def _read(self, data, verbatim=False): + if not verbatim: + data = textwrap.dedent(data) + data = data.strip() + s = cStringIO.StringIO(data) + return http.read_headers(s) + def test_read_simple(self): data = """ Header: one Header2: two \r\n """ - data = textwrap.dedent(data) - data = data.strip() - s = cStringIO.StringIO(data) - h = http.read_headers(s) + h = self._read(data) assert h.lst == [["Header", "one"], ["Header2", "two"]] def test_read_multi(self): @@ -187,10 +191,7 @@ class TestReadHeaders: Header: two \r\n """ - data = textwrap.dedent(data) - data = data.strip() - s = cStringIO.StringIO(data) - h = http.read_headers(s) + h = self._read(data) assert h.lst == [["Header", "one"], ["Header", "two"]] def test_read_continued(self): @@ -200,12 +201,19 @@ class TestReadHeaders: Header2: three \r\n """ - data = textwrap.dedent(data) - data = data.strip() - s = cStringIO.StringIO(data) - h = http.read_headers(s) + h = self._read(data) assert h.lst == [["Header", "one\r\n two"], ["Header2", "three"]] + def test_read_continued_err(self): + data = "\tfoo: bar\r\n" + assert self._read(data, True) is None + + def test_read_err(self): + data = """ + foo + """ + assert self._read(data) is None + def test_read_response(): def tst(data, method, limit): @@ -248,6 +256,14 @@ def test_read_response(): assert tst(data, "GET", None)[4] == 'foo' assert tst(data, "HEAD", None)[4] == '' + data = """ + HTTP/1.1 200 OK + \tContent-Length: 3 + + foo + """ + tutils.raises("invalid headers", tst, data, "GET", None) + def test_parse_url(): assert not http.parse_url("") |