[util] add 'NullResponse' class
This commit is contained in:
@@ -639,6 +639,28 @@ class NullContext():
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class NullResponse():
|
||||||
|
__slots__ = ("url", "reason")
|
||||||
|
|
||||||
|
ok = is_redirect = is_permanent_redirect = False
|
||||||
|
cookies = headers = history = links = {}
|
||||||
|
encoding = apparent_encoding = "utf-8"
|
||||||
|
content = b""
|
||||||
|
text = ""
|
||||||
|
status_code = 900
|
||||||
|
close = noop
|
||||||
|
|
||||||
|
def __init__(self, url, reason=""):
|
||||||
|
self.url = url
|
||||||
|
self.reason = str(reason)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return "900 " + self.reason
|
||||||
|
|
||||||
|
def json(self):
|
||||||
|
return {}
|
||||||
|
|
||||||
|
|
||||||
class CustomNone():
|
class CustomNone():
|
||||||
"""None-style type that supports more operations than regular None"""
|
"""None-style type that supports more operations than regular None"""
|
||||||
__slots__ = ()
|
__slots__ = ()
|
||||||
|
|||||||
@@ -953,6 +953,27 @@ value = 123
|
|||||||
except ValueError as exc:
|
except ValueError as exc:
|
||||||
self.assertIs(exc, exc_orig)
|
self.assertIs(exc, exc_orig)
|
||||||
|
|
||||||
|
def test_null_response(self):
|
||||||
|
response = util.NullResponse("https://example.org")
|
||||||
|
|
||||||
|
self.assertEqual(response.url, "https://example.org")
|
||||||
|
self.assertEqual(response.status_code, 900)
|
||||||
|
self.assertEqual(response.reason, "")
|
||||||
|
self.assertEqual(response.text, "")
|
||||||
|
self.assertEqual(response.content, b"")
|
||||||
|
self.assertEqual(response.json(), {})
|
||||||
|
|
||||||
|
self.assertFalse(response.ok)
|
||||||
|
self.assertFalse(response.is_redirect)
|
||||||
|
self.assertFalse(response.is_permanent_redirect)
|
||||||
|
self.assertFalse(response.history)
|
||||||
|
|
||||||
|
self.assertEqual(response.encoding, "utf-8")
|
||||||
|
self.assertEqual(response.apparent_encoding, "utf-8")
|
||||||
|
self.assertEqual(response.cookies.get("foo"), None)
|
||||||
|
self.assertEqual(response.headers.get("foo"), None)
|
||||||
|
self.assertEqual(response.links.get("next"), None)
|
||||||
|
|
||||||
|
|
||||||
class TestExtractor():
|
class TestExtractor():
|
||||||
category = "test_category"
|
category = "test_category"
|
||||||
|
|||||||
Reference in New Issue
Block a user