init
Some checks failed
Docker. / Ubuntu (push) Has been cancelled
User-agent updater. / User-agent (push) Failing after 15s
Lock Threads / lock (push) Failing after 10s
Waiting for answer. / waiting-for-answer (push) Failing after 22s
Needs user action. / needs-user-action (push) Failing after 8s
Can't reproduce. / cant-reproduce (push) Failing after 8s
Close stale issues and PRs / stale (push) Has been cancelled

This commit is contained in:
allhaileris
2026-02-16 15:50:16 +03:00
commit afb81b8278
13816 changed files with 3689732 additions and 0 deletions

View File

@@ -0,0 +1,120 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# This file is formatted with Python Black
import tests as xdp
import pytest
ACCOUNT_DATA = {
"id": "test",
"name": "Test Name",
"image": "file:///image.png",
}
@pytest.fixture
def required_templates():
return {
"account": {
"results": ACCOUNT_DATA,
},
}
class TestAccount:
def set_permission(self, dbus_con, app_id, permission):
perm_store_intf = xdp.get_permission_store_iface(dbus_con)
perm_store_intf.SetPermission(
"wallpaper",
True,
"wallpaper",
app_id,
[permission],
)
def test_version(self, portals, dbus_con):
xdp.check_version(dbus_con, "Account", 1)
def test_basic1(self, portals, dbus_con, app_id):
account_intf = xdp.get_portal_iface(dbus_con, "Account")
mock_intf = xdp.get_mock_iface(dbus_con)
reason = "reason"
request = xdp.Request(dbus_con, account_intf)
options = {
"reason": reason,
}
response = request.call(
"GetUserInformation",
window="",
options=options,
)
assert response
assert response.response == 0
assert response.results["id"] == ACCOUNT_DATA["id"]
assert response.results["name"] == ACCOUNT_DATA["name"]
assert response.results["image"] == ACCOUNT_DATA["image"]
# Check the impl portal was called with the right args
method_calls = mock_intf.GetMethodCalls("GetUserInformation")
assert len(method_calls) > 0
_, args = method_calls[-1]
assert args[1] == app_id
assert args[2] == "" # window
assert args[3]["reason"] == reason
def test_reason(self, portals, dbus_con):
account_intf = xdp.get_portal_iface(dbus_con, "Account")
mock_intf = xdp.get_mock_iface(dbus_con)
reason = """This reason is unreasonably long, it stretches over
more than twohundredfiftysix characters, which is really quite
long. Excessively so. The portal frontend will silently drop
reasons of this magnitude. If you can't express your reasons
concisely, you probably have no good reason in the first place
and are just waffling around."""
assert len(reason) - 1 > 256
request = xdp.Request(dbus_con, account_intf)
options = {
"reason": reason,
}
response = request.call(
"GetUserInformation",
window="",
options=options,
)
assert response
assert response.response == 0
# Check the impl portal was called with the right args
method_calls = mock_intf.GetMethodCalls("GetUserInformation")
assert len(method_calls) > 0
_, args = method_calls[-1]
assert "reason" not in args[3]
@pytest.mark.parametrize("template_params", ({"account": {"expect-close": True}},))
def test_close(self, portals, dbus_con):
account_intf = xdp.get_portal_iface(dbus_con, "Account")
reason = "reason"
request = xdp.Request(dbus_con, account_intf)
request.schedule_close(1000)
options = {
"reason": reason,
}
request.call(
"GetUserInformation",
window="",
options=options,
)
# Only true if the impl.Request was closed too
assert request.closed