URI: 
       tchannel_db: raise specific exception if database is not loaded when we try to find a route - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit beac1c4ddc7e579155f3f1bbd51588d265beada5
   DIR parent e3019a70469495d80dd4ca0bf15ec93f0fb1fe3c
  HTML Author: ThomasV <thomasv@electrum.org>
       Date:   Tue, 10 Mar 2020 15:11:16 +0100
       
       channel_db: raise specific exception if database is not loaded when we try to find a route
       
       Diffstat:
         M electrum/channel_db.py              |       5 ++++-
         M electrum/tests/test_lnpeer.py       |       1 +
         M electrum/tests/test_lnrouter.py     |       1 +
       
       3 files changed, 6 insertions(+), 1 deletion(-)
       ---
   DIR diff --git a/electrum/channel_db.py b/electrum/channel_db.py
       t@@ -313,7 +313,8 @@ class ChannelDB(SqlDB):
                    return None
        
            def get_recent_peers(self):
       -        assert self.data_loaded.is_set(), "channelDB load_data did not finish yet!"
       +        if not self.data_loaded.is_set():
       +            raise Exception("channelDB data not loaded yet!")
                with self.lock:
                    ret = [self.get_last_good_address(node_id)
                           for node_id in self._recent_peers]
       t@@ -693,6 +694,8 @@ class ChannelDB(SqlDB):
            def get_channels_for_node(self, node_id: bytes, *,
                                      my_channels: Dict[ShortChannelID, 'Channel'] = None) -> Set[bytes]:
                """Returns the set of short channel IDs where node_id is one of the channel participants."""
       +        if not self.data_loaded.is_set():
       +            raise Exception("channelDB data not loaded yet!")
                relevant_channels = self._channels_for_node.get(node_id) or set()
                relevant_channels = set(relevant_channels)  # copy
                # add our own channels  # TODO maybe slow?
   DIR diff --git a/electrum/tests/test_lnpeer.py b/electrum/tests/test_lnpeer.py
       t@@ -55,6 +55,7 @@ class MockNetwork:
                self.config = simple_config.SimpleConfig(user_config, read_user_dir_function=lambda: user_dir)
                self.asyncio_loop = asyncio.get_event_loop()
                self.channel_db = ChannelDB(self)
       +        self.channel_db.data_loaded.set()
                self.path_finder = LNPathFinder(self.channel_db)
                self.tx_queue = tx_queue
        
   DIR diff --git a/electrum/tests/test_lnrouter.py b/electrum/tests/test_lnrouter.py
       t@@ -49,6 +49,7 @@ class Test_LNRouter(TestCaseForTestnet):
                    register_callback = lambda *args: None
                    interface = None
                fake_network.channel_db = lnrouter.ChannelDB(fake_network())
       +        fake_network.channel_db.data_loaded.set()
                cdb = fake_network.channel_db
                path_finder = lnrouter.LNPathFinder(cdb)
                self.assertEqual(cdb.num_channels, 0)