fix: credentials property returns all cookies for session restoration

This commit is contained in:
root 2026-03-29 21:59:10 +00:00
parent 6f60830af3
commit ffb3248e8e
3 changed files with 8 additions and 11 deletions

View File

@ -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(

View File

@ -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"]