Skip to content

Commit 8faca6c

Browse files
Use correct endpoint for RsConnect get_user with guid (#292)
* Use correct endpoint for RsConnect get_user with guid * Add missing `from __future__ import annotations` for 3.8 * Help the pre-commit hook find pyproject.toml config * Revert "Help the pre-commit hook find pyproject.toml config" This reverts commit fef3621. * Apply ruff formatting
1 parent f974481 commit 8faca6c

File tree

2 files changed

+28
-20
lines changed

2 files changed

+28
-20
lines changed

pins/rsconnect/api.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from __future__ import annotations
2+
13
import logging
24
import os
35
import tempfile
@@ -130,14 +132,14 @@ def __init__(self, results: T, cursor: Mapping):
130132

131133

132134
class RsConnectApi:
133-
api_key: "str | None"
134-
server_url: "str"
135+
api_key: str | None
136+
server_url: str
135137

136138
def __init__(
137139
self,
138-
server_url: "str | None",
139-
api_key: "str | None" = None,
140-
session: "requests.Session | None" = None,
140+
server_url: str | None,
141+
api_key: str | None = None,
142+
session: requests.Session | None = None,
141143
):
142144
self.server_url = server_url
143145
self.api_key = api_key
@@ -182,7 +184,7 @@ def _get_headers(self):
182184

183185
return {**d_key, **d_rsc}
184186

185-
def _validate_json_response(self, data: "dict | list"):
187+
def _validate_json_response(self, data: dict | list):
186188
if isinstance(data, list):
187189
return
188190

@@ -257,23 +259,23 @@ def walk_paginated_offsets(self, f_query, endpoint, method, params=None, **kwarg
257259

258260
# users ----
259261

260-
def get_user(self, guid: str = None) -> User:
262+
def get_user(self, guid: str | None = None) -> User:
261263
if guid is None:
262264
return User(self.query_v1("user"))
263265

264-
result = self.query_v1(f"user/{guid}")
266+
result = self.query_v1(f"users/{guid}")
265267
return User(result)
266268

267269
def get_users(
268270
self,
269-
prefix: "str | None" = None,
270-
user_role: "str | None" = None,
271-
account_status: "str | None" = None,
272-
page_number: "int | None" = None,
273-
page_size: "int | None" = None,
274-
asc_order: "bool | None" = None,
271+
prefix: str | None = None,
272+
user_role: str | None = None,
273+
account_status: str | None = None,
274+
page_number: int | None = None,
275+
page_size: int | None = None,
276+
asc_order: bool | None = None,
275277
walk_pages=True,
276-
) -> "Sequence[User] | Sequence[dict]":
278+
) -> Sequence[User] | Sequence[dict]:
277279
params = {k: v for k, v in locals().items() if k != "self" if v is not None}
278280

279281
if walk_pages:
@@ -303,7 +305,7 @@ def post_content_item(
303305

304306
return Content(result)
305307

306-
def post_content_item_deploy(self, guid: str, bundle_id: "str | None" = None):
308+
def post_content_item_deploy(self, guid: str, bundle_id: str | None = None):
307309
json = {"bundle_id": bundle_id} if bundle_id is not None else {}
308310
return self.query_v1(f"content/{guid}/deploy", "POST", json=json)
309311

@@ -345,9 +347,7 @@ def get_content_bundle(self, guid: str, id: int) -> Bundle:
345347
result = self.query_v1(f"content/{guid}/bundles/{id}")
346348
return Bundle(result)
347349

348-
def get_content_bundle_archive(
349-
self, guid: str, id: str, f_obj: "str | IOBase"
350-
) -> None:
350+
def get_content_bundle_archive(self, guid: str, id: str, f_obj: str | IOBase) -> None:
351351
r = self.query_v1(
352352
f"content/{guid}/bundles/{id}/download", stream=True, return_request=True
353353
)
@@ -399,7 +399,7 @@ def misc_ping(self):
399399
return self._raw_query(f"{self.server_url}/__ping__")
400400

401401
def misc_get_content_bundle_file(
402-
self, guid: str, id: str, fname: str, f_obj: "str | IOBase | None" = None
402+
self, guid: str, id: str, fname: str, f_obj: str | IOBase | None = None
403403
):
404404
if f_obj is None:
405405
f_obj = fname

pins/tests/test_rsconnect_api.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from requests.exceptions import HTTPError
66

77
from pins.rsconnect.api import (
8+
RsConnectApi,
89
RsConnectApiMissingContentError,
910
RsConnectApiRequestError,
1011
)
@@ -69,6 +70,13 @@ def test_rsconnect_api_get_user(rsc_admin):
6970
assert me["username"] == "admin"
7071

7172

73+
def test_rsconnect_api_get_user_guid(rsc_admin: RsConnectApi):
74+
guid = rsc_admin.get_user().get_id()
75+
me = rsc_admin.get_user(guid=guid)
76+
assert me.get_id() == guid
77+
assert me["username"] == "admin"
78+
79+
7280
def test_rsconnect_get_content_empty(rsc_short):
7381
me = rsc_short.get_user()
7482
content = rsc_short.get_content(owner_guid=me["guid"])

0 commit comments

Comments
 (0)