Skip to content

Commit

Permalink
increased coverage(+2)
Browse files Browse the repository at this point in the history
Signed-off-by: Alexander Piskun <[email protected]>
  • Loading branch information
bigcat88 committed Jun 29, 2023
1 parent 2ae59a2 commit 2a7a8eb
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 20 deletions.
4 changes: 2 additions & 2 deletions nc_py_api/users_statuses.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,15 +64,15 @@ def get(self, user_id: str) -> Optional[UserStatus]:
raise e from None

def get_predefined(self) -> list[PredefinedStatus]:
require_capabilities("user_status", self._session.capabilities)
if self._session.nc_version["major"] < 27:
return []
require_capabilities("user_status", self._session.capabilities)
return self._session.ocs(method="GET", path=f"{ENDPOINT}/predefined_statuses")

def set_predefined(self, message_id: str, clear_at: int = 0) -> None:
require_capabilities("user_status", self._session.capabilities)
if self._session.nc_version["major"] < 27:
return
require_capabilities("user_status", self._session.capabilities)
params: dict[str, Union[int, str]] = {"messageId": message_id}
if clear_at:
params["clearAt"] = clear_at
Expand Down
40 changes: 22 additions & 18 deletions tests/users_statuses_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from time import time


from gfixture import NC_TO_TEST, NC_VERSION
from gfixture import NC_TO_TEST


@pytest.mark.parametrize("nc", NC_TO_TEST)
Expand Down Expand Up @@ -36,17 +36,19 @@ def test_get_status(nc, message):
assert not r1["messageIsPredefined"]


@pytest.mark.skipif(NC_VERSION.get("major", 0) < 27, reason="NC27 required.")
@pytest.mark.parametrize("nc", NC_TO_TEST)
def test_get_predefined(nc):
r = nc.users_statuses.get_predefined()
assert isinstance(r, list)
assert r
for i in r:
assert isinstance(i["id"], str)
assert isinstance(i["message"], str)
assert isinstance(i["icon"], str)
assert isinstance(i["clearAt"], dict) or i["clearAt"] is None
if nc.srv_version["major"] < 27:
assert r == []
else:
assert isinstance(r, list)
assert r
for i in r:
assert isinstance(i["id"], str)
assert isinstance(i["message"], str)
assert isinstance(i["icon"], str)
assert isinstance(i["clearAt"], dict) or i["clearAt"] is None


@pytest.mark.parametrize("nc", NC_TO_TEST)
Expand Down Expand Up @@ -89,15 +91,17 @@ def test_set_status_type(nc, value):
assert r["statusIsUserDefined"]


@pytest.mark.skipif(NC_VERSION.get("major", 0) < 27, reason="NC27 required.")
@pytest.mark.parametrize("nc", NC_TO_TEST)
@pytest.mark.parametrize("clear_at", (None, int(time()) + 360))
def test_set_predefined(nc, clear_at):
predefined_statuses = nc.users_statuses.get_predefined()
for i in predefined_statuses:
nc.users_statuses.set_predefined(i["id"], clear_at)
r = nc.users_statuses.get_current()
assert r["message"] == i["message"]
assert r["messageId"] == i["id"]
assert r["messageIsPredefined"]
assert r["clearAt"] == clear_at
if nc.srv_version["major"] < 27:
nc.users_statuses.set_predefined("meeting")
else:
predefined_statuses = nc.users_statuses.get_predefined()
for i in predefined_statuses:
nc.users_statuses.set_predefined(i["id"], clear_at)
r = nc.users_statuses.get_current()
assert r["message"] == i["message"]
assert r["messageId"] == i["id"]
assert r["messageIsPredefined"]
assert r["clearAt"] == clear_at

0 comments on commit 2a7a8eb

Please sign in to comment.