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