mirror of https://github.com/nucypher/nucypher.git
Handles Alice database in config subclass, Use sqlalchemy default development database instead of pure in-memory (#662)
parent
207dbbbead
commit
4fa2fa8e42
|
@ -707,7 +707,7 @@ class Ursula(Teacher, Character, Miner):
|
|||
seed_uri: str,
|
||||
federated_only: bool,
|
||||
minimum_stake: int = 0,
|
||||
checksum_address: str = None,
|
||||
checksum_address: str = None, # TODO: Why is this unused?
|
||||
network_middleware: RestMiddleware = None,
|
||||
*args,
|
||||
**kwargs
|
||||
|
|
|
@ -41,8 +41,6 @@ class UrsulaConfiguration(NodeConfiguration):
|
|||
dev_mode: bool = False,
|
||||
db_filepath: str = None,
|
||||
*args, **kwargs) -> None:
|
||||
if dev_mode is True:
|
||||
db_filepath = ':memory:' # sqlite in-memory db
|
||||
self.db_filepath = db_filepath or UNINITIALIZED_CONFIGURATION
|
||||
super().__init__(dev_mode=dev_mode, *args, **kwargs)
|
||||
|
||||
|
|
|
@ -302,9 +302,7 @@ class Learner:
|
|||
|
||||
def load_seednodes(self,
|
||||
read_storages: bool = True,
|
||||
retry_attempts: int = 3,
|
||||
retry_rate: int = 2,
|
||||
timeout=3):
|
||||
retry_attempts: int = 3): # TODO: why are these unused?
|
||||
"""
|
||||
Engage known nodes from storages and pre-fetch hardcoded seednode certificates for node learning.
|
||||
"""
|
||||
|
|
|
@ -147,8 +147,12 @@ class ProxyRESTRoutes:
|
|||
self.log.info("Starting datastore {}".format(self.db_filepath))
|
||||
|
||||
# See: https://docs.sqlalchemy.org/en/rel_0_9/dialects/sqlite.html#connect-strings
|
||||
db_filepath = (self.db_filepath or '') # Capture None
|
||||
engine = create_engine('sqlite:///{}'.format(db_filepath))
|
||||
if self.db_filepath:
|
||||
db_uri = f'sqlite:///{self.db_filepath}'
|
||||
else:
|
||||
db_uri = 'sqlite://' # TODO: Is this a sane default? See #667
|
||||
|
||||
engine = create_engine(db_uri)
|
||||
|
||||
Base.metadata.create_all(engine)
|
||||
self.datastore = keystore.KeyStore(engine)
|
||||
|
|
|
@ -42,7 +42,6 @@ def test_run_lone_federated_default_development_ursula(click_runner):
|
|||
|
||||
time.sleep(Learner._SHORT_LEARNING_DELAY)
|
||||
assert result.exit_code == 0
|
||||
assert ":memory:" in result.output
|
||||
assert "Running Ursula on 127.0.0.1:{}".format(MOCK_URSULA_STARTING_PORT)
|
||||
|
||||
reserved_ports = (NodeConfiguration.DEFAULT_REST_PORT, NodeConfiguration.DEFAULT_DEVELOPMENT_REST_PORT)
|
||||
|
|
|
@ -25,7 +25,7 @@ def test_ursula_development_configuration(federated_only=True):
|
|||
# A Temporary Ursula
|
||||
port = ursula_one.rest_information()[0].port
|
||||
assert port == UrsulaConfiguration.DEFAULT_DEVELOPMENT_REST_PORT
|
||||
assert ursula_one.datastore.engine.url.database == ":memory:"
|
||||
assert '/tmp' in ursula_one.datastore.engine.url.database
|
||||
assert ursula_one.certificate_filepath is CERTIFICATE_NOT_SAVED
|
||||
assert UrsulaConfiguration.TEMP_CONFIGURATION_DIR_PREFIX in ursula_one.keyring_dir
|
||||
assert isinstance(ursula_one.node_storage, ForgetfulNodeStorage)
|
||||
|
|
Loading…
Reference in New Issue