feat: compress shusub2 polling
This commit is contained in:
@@ -105,6 +105,51 @@ class Sub2APIQuotaTUITests(unittest.TestCase):
|
||||
self.assertEqual(mod.version_update_message("0.1.7", "0.1.7"), "")
|
||||
self.assertEqual(mod.version_update_message("0.1.6", "0.1.7"), "")
|
||||
|
||||
def test_gzip_json_requests_decode_responses_and_request_compression(self) -> None:
|
||||
mod = load_module()
|
||||
payload = {"ok": True}
|
||||
compressed = mod.gzip.compress(mod.json.dumps(payload).encode("utf-8"))
|
||||
requests = []
|
||||
|
||||
class FakeResponse:
|
||||
headers = {"Content-Encoding": "gzip"}
|
||||
|
||||
def __enter__(self):
|
||||
return self
|
||||
|
||||
def __exit__(self, exc_type, exc, traceback):
|
||||
return False
|
||||
|
||||
def read(self):
|
||||
return compressed
|
||||
|
||||
old_urlopen = mod.urllib.request.urlopen
|
||||
mod.urllib.request.urlopen = lambda request, timeout: (requests.append(request) or FakeResponse())
|
||||
try:
|
||||
self.assertEqual(mod.fetch_payload("https://example.test/accounts", 1), payload)
|
||||
self.assertEqual(mod.fetch_logs_payload("https://example.test/usage", "test-token", 1), payload)
|
||||
self.assertEqual(mod.fetch_admin_json("https://example.test/admin", "test-token", 1, body={"ids": [1]}), payload)
|
||||
self.assertEqual(mod.fetch_errors_payload("https://example.test/errors", "test-token", 1), payload)
|
||||
finally:
|
||||
mod.urllib.request.urlopen = old_urlopen
|
||||
|
||||
class PlainResponse:
|
||||
headers = {}
|
||||
|
||||
def read(self):
|
||||
return mod.json.dumps(payload).encode("utf-8")
|
||||
|
||||
self.assertEqual(mod.decode_json_response(PlainResponse(), "plain JSON failed"), payload)
|
||||
self.assertEqual(len(requests), 4)
|
||||
self.assertTrue(all(request.get_header("Accept-encoding") == "gzip" for request in requests))
|
||||
|
||||
def test_default_refresh_intervals_are_five_minutes(self) -> None:
|
||||
mod = load_module()
|
||||
|
||||
self.assertEqual(mod.DEFAULT_REFRESH_SECONDS, 300)
|
||||
self.assertEqual(mod.DEFAULT_LOGS_REFRESH_SECONDS, 300)
|
||||
self.assertEqual(mod.DEFAULT_ERRORS_REFRESH_SECONDS, 300)
|
||||
|
||||
def test_write_api_url_config_uses_config_file_env(self) -> None:
|
||||
mod = load_module()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user