status-go/tests-functional/tests/test_wakuext_profile.py

108 lines
5.4 KiB
Python

import random
import pytest
import logging
from test_cases import StatusBackendTestCase
class TestProfile(StatusBackendTestCase):
@pytest.mark.parametrize(
"method, params",
[
("wakuext_setDisplayName", ["new valid username"]),
("wakuext_setBio", ["some valid bio"]),
("wakuext_setCustomizationColor", [{'customizationColor': 'magenta',
'keyUid': '0xea42dd9a4e668b0b76c7a5210ca81576d51cd19cdd0f6a0c22196219dc423f29'}]),
("wakuext_setUserStatus", [3, ""]),
("wakuext_setSyncingOnMobileNetwork", [{"enabled": False}]),
("wakuext_togglePeerSyncing", [{"enabled": True}]),
("wakuext_backupData", []),
],
)
def test_(self, method, params):
_id = str(random.randint(1, 8888))
self.rpc_client.rpc_valid_request(method, params, _id)
@pytest.mark.parametrize(
"method, setting_name, default_value, changed_value",
[
("settings_saveSetting", "currency", "usd", "eth"),
("settings_saveSetting", "messages-from-contacts-only", False, True),
("settings_saveSetting", "preview-privacy?", False, True),
("settings_saveSetting", "default-sync-period", 777600, 259200),
("settings_saveSetting", "appearance", 0, 1),
("settings_saveSetting", "profile-pictures-show-to", 2, 1), # obsolete from v1
("settings_saveSetting", "profile-pictures-visibility", 2, 1), # obsolete from v1
],
)
def test_(self, method, setting_name, default_value, changed_value):
_id = str(random.randint(1, 8888))
logging.info("Step: check that %s is %s by default " % (setting_name, default_value))
response = self.rpc_client.rpc_valid_request("settings_getSettings", [])
assert response.json()["result"][setting_name] == default_value
logging.info("Step: change %s to %s and check it is updated" % (setting_name, changed_value))
self.rpc_client.rpc_valid_request(method, [setting_name, changed_value], _id)
response = self.rpc_client.rpc_valid_request("settings_getSettings", [])
assert response.json()["result"][setting_name] == changed_value
# tests for `omitempty` params that are set to False or nil by default
@pytest.mark.parametrize(
"method, setting_name, set_value",
[
("settings_saveSetting", "mnemonic-removed?", True),
("settings_saveSetting", "push-notifications-server-enabled?", True),
("settings_saveSetting", "push-notifications-from-contacts-only?", True),
("settings_saveSetting", "push-notifications-block-mentions?", True),
("settings_saveSetting", "remember-syncing-choice?", True),
("settings_saveSetting", "remote-push-notifications-enabled?", True),
("settings_saveSetting", "syncing-on-mobile-network?", True),
## advanced token settings
("settings_saveSetting", "wallet-set-up-passed?", True),
("settings_saveSetting", "opensea-enabled?", True),
("settings_saveSetting", "waku-bloom-filter-mode", True),
("settings_saveSetting", "webview-allow-permission-requests?", True),
("settings_saveSetting", "token-group-by-community?", True),
("settings_saveSetting", "display-assets-below-balance?", True),
## token management settings for collectibles
("settings_saveSetting", "collectible-group-by-collection?", True),
("settings_saveSetting", "collectible-group-by-community?", True),
],
)
def test_omitempty_false_(self, method, setting_name, set_value):
_id = str(random.randint(1, 8888))
logging.info("Step: assert that %s is not retrieved in settings before setting" % (setting_name))
response = self.rpc_client.rpc_valid_request("settings_getSettings", [])
assert setting_name not in response.json()["result"]
logging.info("Step: change %s to %s and check it is updated" % (setting_name, set_value))
self.rpc_client.rpc_valid_request(method, [setting_name, set_value], _id)
response = self.rpc_client.rpc_valid_request("settings_getSettings", [])
assert response.json()["result"][setting_name] == set_value
# tests for `omitempty` params that are not nil by default
@pytest.mark.parametrize(
"method, setting_name, set_value",
[
("settings_saveSetting", "send-status-updates?", False),
("settings_saveSetting", "link-preview-request-enabled", False),
("settings_saveSetting", "show-community-asset-when-sending-tokens?", False),
("settings_saveSetting", "url-unfurling-mode", 0),
],
)
def test_omitempty_true_(self, method, setting_name, set_value):
_id = str(random.randint(1, 8888))
logging.info("Step: assert that %s is retrieved in settings before unsetting" % (setting_name))
response = self.rpc_client.rpc_valid_request("settings_getSettings", [])
assert setting_name in response.json()["result"]
logging.info("Step: change %s to %s and check it is updated and does not retrieve anymore" % (setting_name, set_value))
self.rpc_client.rpc_valid_request(method, [setting_name, set_value], _id)
response = self.rpc_client.rpc_valid_request("settings_getSettings", [])
assert setting_name not in response.json()["result"]