fix: credentials property returns all cookies for session restoration
This commit is contained in:
parent
6f60830af3
commit
ffb3248e8e
Binary file not shown.
@ -162,12 +162,12 @@ class KworkClient:
|
||||
return self._cookies.copy()
|
||||
|
||||
@property
|
||||
def credentials(self) -> dict[str, str | None]:
|
||||
def credentials(self) -> dict[str, str]:
|
||||
"""
|
||||
Учётные данные для восстановления сессии.
|
||||
|
||||
Returns:
|
||||
Словарь с token и cookies для передачи в KworkClient().
|
||||
Словарь со всеми cookies (включая slrememberme и userId) для передачи в KworkClient(cookies=...).
|
||||
|
||||
Example:
|
||||
# Сохранение
|
||||
@ -179,12 +179,9 @@ class KworkClient:
|
||||
# Восстановление
|
||||
with open("session.json") as f:
|
||||
creds = json.load(f)
|
||||
client = KworkClient(**creds)
|
||||
client = KworkClient(cookies=creds)
|
||||
"""
|
||||
return {
|
||||
"token": self._token,
|
||||
"cookies": self._cookies.copy() if self._cookies else None,
|
||||
}
|
||||
return self._cookies.copy() if self._cookies else {}
|
||||
|
||||
@classmethod
|
||||
async def login(
|
||||
|
||||
@ -31,16 +31,16 @@ async def test_login_invalid_credentials():
|
||||
|
||||
@pytest.mark.e2e
|
||||
async def test_restore_session(require_credentials):
|
||||
"""E2E: Восстановление сессии из токена."""
|
||||
"""E2E: Восстановление сессии из cookies."""
|
||||
# First login
|
||||
client1 = await KworkClient.login(
|
||||
username=require_credentials["username"], password=require_credentials["password"]
|
||||
)
|
||||
token = client1.token
|
||||
credentials = client1.credentials # Get all cookies
|
||||
await client1.close()
|
||||
|
||||
# Restore from token
|
||||
client2 = KworkClient(token=token)
|
||||
# Restore from credentials (all cookies)
|
||||
client2 = KworkClient(cookies=credentials)
|
||||
try:
|
||||
user = await client2.user.get_info()
|
||||
assert user["username"] == require_credentials["username"]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user