mirror of https://github.com/nucypher/nucypher.git
44 lines
1.7 KiB
Python
44 lines
1.7 KiB
Python
from constant_sorrow.constants import NO_KEYRING_ATTACHED, CERTIFICATE_NOT_SAVED
|
|
from nucypher.characters.lawful import Ursula
|
|
from nucypher.config.characters import UrsulaConfiguration
|
|
|
|
|
|
from nucypher.config.storages import ForgetfulNodeStorage
|
|
|
|
|
|
# @pytest.mark.parametrize("federated_only", [True, ]) TODO
|
|
def test_ursula_development_configuration(federated_only=True):
|
|
config = UrsulaConfiguration(dev_mode=True, federated_only=federated_only)
|
|
assert config.is_me is True
|
|
assert config.dev_mode is True
|
|
assert config.keyring == NO_KEYRING_ATTACHED
|
|
assert config.provider_uri == UrsulaConfiguration.DEFAULT_PROVIDER_URI
|
|
|
|
# Produce an Ursula
|
|
ursula_one = config()
|
|
|
|
# Ensure we do in fact have an Ursula here
|
|
assert isinstance(ursula_one, Ursula)
|
|
assert len(ursula_one.checksum_public_address) == 42
|
|
assert ursula_one.federated_only is federated_only
|
|
|
|
# A Temporary Ursula
|
|
port = ursula_one.rest_information()[0].port
|
|
assert port == UrsulaConfiguration.DEFAULT_DEVELOPMENT_REST_PORT
|
|
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)
|
|
assert ursula_one.node_storage._name == ":memory:"
|
|
|
|
# Alternate way to produce a character with a direct call
|
|
ursula_two = config.produce()
|
|
assert isinstance(ursula_two, Ursula)
|
|
|
|
# All development Ursulas are unique
|
|
ursulas = [ursula_one, ursula_two]
|
|
for _ in range(3):
|
|
ursula = config()
|
|
assert ursula not in ursulas
|
|
ursulas.append(ursula)
|