Merge pull request #605 from KPrasch/config

Ursula Development Configuration Test
pull/620/head
David Núñez 2018-12-17 22:12:37 +01:00 committed by GitHub
commit 19dd593256
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 41 additions and 0 deletions

View File

@ -0,0 +1,41 @@
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
assert ursula_one.datastore.engine.url.database == ":memory:"
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)