diff --git a/lbry/lbry/extras/daemon/Daemon.py b/lbry/lbry/extras/daemon/Daemon.py index 9b354c8ea..64f676e0c 100644 --- a/lbry/lbry/extras/daemon/Daemon.py +++ b/lbry/lbry/extras/daemon/Daemon.py @@ -21,7 +21,7 @@ from torba.client.wallet import Wallet, ENCRYPT_ON_DISK from torba.client.baseaccount import SingleKey, HierarchicalDeterministic from lbry import utils -from lbry.conf import Config, Setting +from lbry.conf import Config, Setting, NOT_SET from lbry.blob.blob_file import is_valid_blobhash, BlobBuffer from lbry.blob_exchange.downloader import download_blob from lbry.dht.peer import make_kademlia_peer @@ -1007,6 +1007,23 @@ class Daemon(metaclass=JSONRPCServerType): setattr(c, key, cleaned) return {key: cleaned} + def jsonrpc_settings_clear(self, key): + """ + Clear daemon settings + + Usage: + settings_clear () + + Options: + None + + Returns: + (dict) Updated dictionary of daemon settings + """ + with self.conf.update_config() as c: + setattr(c, key, NOT_SET) + return + PREFERENCE_DOC = """ Preferences management. """ diff --git a/lbry/tests/integration/test_other_commands.py b/lbry/tests/integration/test_other_commands.py index 2d93baeb2..7f13393a9 100644 --- a/lbry/tests/integration/test_other_commands.py +++ b/lbry/tests/integration/test_other_commands.py @@ -10,3 +10,20 @@ class AddressManagement(CommandTestCase): single = await self.out(self.daemon.jsonrpc_address_list(addresses['items'][11]['address'])) self.assertItemCount(single, 1) self.assertEqual(single['items'][0], addresses['items'][11]) + + async def test_settings(self): + settings = self.daemon.jsonrpc_settings_get() + self.assertNotEqual(settings['lbryum_servers'][0],('127.0.0.1', 50002)) + self.assertEqual(settings['lbryum_servers'][0],('127.0.0.1', 50001)) + + servers = ['server:50001', 'server2:50001'] + self.daemon.jsonrpc_settings_set('lbryum_servers', servers) + self.daemon.jsonrpc_settings_set('use_upnp', True) + settings2 = self.daemon.jsonrpc_settings_get() + self.assertEqual(settings2['lbryum_servers'][0], ('server', 50001)) + self.assertEqual(settings2['use_upnp'], True) + + self.daemon.jsonrpc_settings_clear('lbryum_servers') + settings3 = self.daemon.jsonrpc_settings_get() + self.assertNotEqual(settings3['lbryum_servers'][0], ('spv1.lbry.com', 50002)) + self.assertEqual(settings3['lbryum_servers'][0], ('spv1.lbry.com', 50001))