fix(douyu): reject invalid activity cookies
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
import unittest
|
||||
from unittest.mock import Mock
|
||||
|
||||
import requests
|
||||
|
||||
from core.douyu.activity_client import DouyuActivityClient, DouyuActivityError
|
||||
|
||||
|
||||
@@ -100,6 +102,31 @@ class EliteLockExchangeTests(unittest.TestCase):
|
||||
"page": 2, "pageSize": 20, "manualID": "manual",
|
||||
})
|
||||
|
||||
def test_redirect_is_not_followed_and_is_reported_without_query_values(self):
|
||||
response = requests.Response()
|
||||
response.status_code = 302
|
||||
response.url = "https://www.douyu.com/japi/example?request_secret=hidden"
|
||||
response.headers["Location"] = "https://www.douyu.com/member/login?ticket=secret"
|
||||
self.client.session.request = Mock(return_value=response)
|
||||
self.client.logger = Mock()
|
||||
|
||||
with self.assertRaisesRegex(DouyuActivityError, "Cookie 已失效,请重新登录") as caught:
|
||||
self.client._request(
|
||||
"get",
|
||||
"https://www.douyu.com/japi/example?request_secret=hidden",
|
||||
source="测试活动接口",
|
||||
)
|
||||
|
||||
self.client.session.request.assert_called_once()
|
||||
self.assertFalse(self.client.session.request.call_args.kwargs["allow_redirects"])
|
||||
message = str(caught.exception)
|
||||
self.assertIn("method=GET", message)
|
||||
self.assertIn("url=https://www.douyu.com/japi/example", message)
|
||||
self.assertIn("location=https://www.douyu.com/member/login", message)
|
||||
self.assertNotIn("request_secret", message)
|
||||
self.assertNotIn("ticket=secret", message)
|
||||
self.assertIn("已拦截重定向", self.client.logger.call_args.args[0])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user