Browse Source

tests: add unit tests for prev

master
SomberNight 2 years ago
parent
commit
f9d6849b0a
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
  1. 64
      electrum/tests/test_daemon.py

64
electrum/tests/test_daemon.py

@ -1,21 +1,21 @@
import os
from typing import Optional, Iterable
from electrum.commands import Commands
from electrum.daemon import Daemon
from electrum.simple_config import SimpleConfig
from electrum.wallet import restore_wallet_from_text
from electrum.wallet import restore_wallet_from_text, Abstract_Wallet
from electrum import util
from . import ElectrumTestCase, as_testnet
class TestUnifiedPassword(ElectrumTestCase):
class DaemonTestCase(ElectrumTestCase):
config: 'SimpleConfig'
def setUp(self):
super().setUp()
self.config = SimpleConfig({'electrum_path': self.electrum_path})
self.config.WALLET_USE_SINGLE_PASSWORD = True
self.config.NETWORK_OFFLINE = True
self.wallet_dir = os.path.dirname(self.config.get_wallet_path())
@ -48,6 +48,13 @@ class TestUnifiedPassword(ElectrumTestCase):
# for the same fs path, and there would be two wallet objects contending for the same file.
return path
class TestUnifiedPassword(DaemonTestCase):
def setUp(self):
super().setUp()
self.config.WALLET_USE_SINGLE_PASSWORD = True
def _run_post_unif_sanity_checks(self, paths: Iterable[str], *, password: str):
for path in paths:
w = self.daemon.load_wallet(path, password)
@ -178,3 +185,54 @@ class TestUnifiedPassword(ElectrumTestCase):
is_unified = self.daemon.update_password_for_directory(old_password="123456", new_password="123456")
self.assertTrue(is_unified)
self._run_post_unif_sanity_checks(paths, password="123456")
class TestCommandsWithDaemon(DaemonTestCase):
TESTNET = True
async def test_wp_command_with_inmemory_wallet_has_password(self):
cmds = Commands(config=self.config, daemon=self.daemon)
wallet = restore_wallet_from_text('bitter grass shiver impose acquire brush forget axis eager alone wine silver',
gap_limit=2,
path=None,
password="123456",
config=self.config)['wallet']
self.assertEqual("bitter grass shiver impose acquire brush forget axis eager alone wine silver",
await cmds.getseed(wallet=wallet, password="123456"))
async def test_wp_command_with_inmemory_wallet_no_password(self):
cmds = Commands(config=self.config, daemon=self.daemon)
wallet = restore_wallet_from_text('bitter grass shiver impose acquire brush forget axis eager alone wine silver',
gap_limit=2,
path=None,
config=self.config)['wallet']
self.assertEqual("bitter grass shiver impose acquire brush forget axis eager alone wine silver",
await cmds.getseed(wallet=wallet))
async def test_wp_command_with_diskfile_wallet_has_password(self):
cmds = Commands(config=self.config, daemon=self.daemon)
wpath = self._restore_wallet_from_text("bitter grass shiver impose acquire brush forget axis eager alone wine silver", password="123456", encrypt_file=True)
await cmds.load_wallet(wallet_path=wpath, password="123456")
wallet = self.daemon.get_wallet(wpath)
self.assertIsInstance(wallet, Abstract_Wallet)
# when using the CLI/RPC to run commands, the "wallet" param is a path:
self.assertEqual("bitter grass shiver impose acquire brush forget axis eager alone wine silver",
await cmds.getseed(wallet=wpath, password="123456"))
# in unit tests or custom code, the "wallet" param is often an Abstract_Wallet:
self.assertEqual("bitter grass shiver impose acquire brush forget axis eager alone wine silver",
await cmds.getseed(wallet=wallet, password="123456"))
async def test_wp_command_with_diskfile_wallet_no_password(self):
cmds = Commands(config=self.config, daemon=self.daemon)
wpath = self._restore_wallet_from_text("bitter grass shiver impose acquire brush forget axis eager alone wine silver", password=None)
await cmds.load_wallet(wallet_path=wpath, password=None)
wallet = self.daemon.get_wallet(wpath)
self.assertIsInstance(wallet, Abstract_Wallet)
# when using the CLI/RPC to run commands, the "wallet" param is a path:
self.assertEqual("bitter grass shiver impose acquire brush forget axis eager alone wine silver",
await cmds.getseed(wallet=wpath))
# in unit tests or custom code, the "wallet" param is often an Abstract_Wallet:
self.assertEqual("bitter grass shiver impose acquire brush forget axis eager alone wine silver",
await cmds.getseed(wallet=wallet))

Loading…
Cancel
Save