2019-02-20 05:18:52 +00:00
|
|
|
import tempfile
|
2018-12-09 01:56:36 +00:00
|
|
|
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
|
2018-12-20 21:02:26 +00:00
|
|
|
port = ursula_one.rest_information()[0].port
|
|
|
|
assert port == UrsulaConfiguration.DEFAULT_DEVELOPMENT_REST_PORT
|
2019-02-20 05:18:52 +00:00
|
|
|
assert tempfile.gettempdir() in ursula_one.datastore.engine.url.database
|
2018-12-09 01:56:36 +00:00
|
|
|
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()
|
2018-12-17 20:51:04 +00:00
|
|
|
assert isinstance(ursula_two, Ursula)
|
2018-12-09 01:56:36 +00:00
|
|
|
|
|
|
|
# All development Ursulas are unique
|
|
|
|
ursulas = [ursula_one, ursula_two]
|
|
|
|
for _ in range(3):
|
|
|
|
ursula = config()
|
|
|
|
assert ursula not in ursulas
|
|
|
|
ursulas.append(ursula)
|