diff options
Diffstat (limited to 'netlib/test/http/test_message.py')
-rw-r--r-- | netlib/test/http/test_message.py | 153 |
1 files changed, 0 insertions, 153 deletions
diff --git a/netlib/test/http/test_message.py b/netlib/test/http/test_message.py deleted file mode 100644 index 4b1f4630..00000000 --- a/netlib/test/http/test_message.py +++ /dev/null @@ -1,153 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import absolute_import, print_function, division - -from netlib.http import decoded, Headers -from netlib.tutils import tresp, raises - - -def _test_passthrough_attr(message, attr): - assert getattr(message, attr) == getattr(message.data, attr) - setattr(message, attr, "foo") - assert getattr(message.data, attr) == "foo" - - -def _test_decoded_attr(message, attr): - assert getattr(message, attr) == getattr(message.data, attr).decode("utf8") - # Set str, get raw bytes - setattr(message, attr, "foo") - assert getattr(message.data, attr) == b"foo" - # Set raw bytes, get decoded - setattr(message.data, attr, b"BAR") # use uppercase so that we can also cover request.method - assert getattr(message, attr) == "BAR" - # Set bytes, get raw bytes - setattr(message, attr, b"baz") - assert getattr(message.data, attr) == b"baz" - - # Set UTF8 - setattr(message, attr, "Non-Autorisé") - assert getattr(message.data, attr) == b"Non-Autoris\xc3\xa9" - # Don't fail on garbage - setattr(message.data, attr, b"FOO\xFF\x00BAR") - assert getattr(message, attr).startswith("FOO") - assert getattr(message, attr).endswith("BAR") - # foo.bar = foo.bar should not cause any side effects. - d = getattr(message, attr) - setattr(message, attr, d) - assert getattr(message.data, attr) == b"FOO\xFF\x00BAR" - - -class TestMessageData(object): - def test_eq_ne(self): - data = tresp(timestamp_start=42, timestamp_end=42).data - same = tresp(timestamp_start=42, timestamp_end=42).data - assert data == same - assert not data != same - - other = tresp(content=b"foo").data - assert not data == other - assert data != other - - assert data != 0 - - -class TestMessage(object): - - def test_init(self): - resp = tresp() - assert resp.data - - def test_eq_ne(self): - resp = tresp(timestamp_start=42, timestamp_end=42) - same = tresp(timestamp_start=42, timestamp_end=42) - assert resp == same - assert not resp != same - - other = tresp(timestamp_start=0, timestamp_end=0) - assert not resp == other - assert resp != other - - assert resp != 0 - - def test_content_length_update(self): - resp = tresp() - resp.content = b"foo" - assert resp.data.content == b"foo" - assert resp.headers["content-length"] == "3" - resp.content = b"" - assert resp.data.content == b"" - assert resp.headers["content-length"] == "0" - - def test_content_basic(self): - _test_passthrough_attr(tresp(), "content") - - def test_headers(self): - _test_passthrough_attr(tresp(), "headers") - - def test_timestamp_start(self): - _test_passthrough_attr(tresp(), "timestamp_start") - - def test_timestamp_end(self): - _test_passthrough_attr(tresp(), "timestamp_end") - - def teste_http_version(self): - _test_decoded_attr(tresp(), "http_version") - - -class TestDecodedDecorator(object): - - def test_simple(self): - r = tresp() - assert r.content == b"message" - assert "content-encoding" not in r.headers - assert r.encode("gzip") - - assert r.headers["content-encoding"] - assert r.content != b"message" - with decoded(r): - assert "content-encoding" not in r.headers - assert r.content == b"message" - assert r.headers["content-encoding"] - assert r.content != b"message" - - def test_modify(self): - r = tresp() - assert "content-encoding" not in r.headers - assert r.encode("gzip") - - with decoded(r): - r.content = b"foo" - - assert r.content != b"foo" - r.decode() - assert r.content == b"foo" - - def test_unknown_ce(self): - r = tresp() - r.headers["content-encoding"] = "zopfli" - r.content = b"foo" - with decoded(r): - assert r.headers["content-encoding"] - assert r.content == b"foo" - assert r.headers["content-encoding"] - assert r.content == b"foo" - - def test_cannot_decode(self): - r = tresp() - assert r.encode("gzip") - r.content = b"foo" - with decoded(r): - assert r.headers["content-encoding"] - assert r.content == b"foo" - assert r.headers["content-encoding"] - assert r.content != b"foo" - r.decode() - assert r.content == b"foo" - - def test_cannot_encode(self): - r = tresp() - assert r.encode("gzip") - with decoded(r): - r.content = None - - assert "content-encoding" not in r.headers - assert r.content is None |