mirror of https://github.com/nucypher/nucypher.git
make_federated_ursulas gets called from a few places of varying depths in the stack - accounting for that.
parent
924435ee37
commit
5fd14a7109
|
@ -27,8 +27,6 @@ from nucypher.crypto.powers import (CryptoPower, NoSigningPower, SigningPower)
|
||||||
"""
|
"""
|
||||||
Chapter 1: SIGNING
|
Chapter 1: SIGNING
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
def test_actor_without_signing_power_cannot_sign():
|
def test_actor_without_signing_power_cannot_sign():
|
||||||
"""
|
"""
|
||||||
We can create a Character with no real CryptoPower to speak of.
|
We can create a Character with no real CryptoPower to speak of.
|
||||||
|
|
|
@ -52,10 +52,11 @@ class _TestMiddlewareClient(NucypherMiddlewareClient):
|
||||||
return mock_client
|
return mock_client
|
||||||
|
|
||||||
def _get_ursula_by_port(self, port):
|
def _get_ursula_by_port(self, port):
|
||||||
|
mkuc = MOCK_KNOWN_URSULAS_CACHE
|
||||||
try:
|
try:
|
||||||
return MOCK_KNOWN_URSULAS_CACHE[port]
|
return mkuc[port]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
raise RuntimeError(
|
raise RuntimeError(
|
||||||
"Can't find an Ursula with port {} - did you spin up the right test ursulas?".format(port))
|
"Can't find an Ursula with port {} - did you spin up the right test ursulas?".format(port))
|
||||||
|
|
||||||
def parse_node_or_host_and_port(self, node=None, host=None, port=None):
|
def parse_node_or_host_and_port(self, node=None, host=None, port=None):
|
||||||
|
|
|
@ -68,13 +68,24 @@ def make_federated_ursulas(ursula_config: UrsulaConfiguration,
|
||||||
|
|
||||||
federated_ursulas = set()
|
federated_ursulas = set()
|
||||||
frames = inspect.stack(3)
|
frames = inspect.stack(3)
|
||||||
|
# This gets called from various places.
|
||||||
|
for frame in range(1, 10):
|
||||||
|
try:
|
||||||
|
test_name = frames[frame].frame.f_locals['request'].module
|
||||||
|
break
|
||||||
|
except KeyError:
|
||||||
|
continue
|
||||||
|
|
||||||
for port in range(starting_port, starting_port+quantity):
|
for port in range(starting_port, starting_port+quantity):
|
||||||
|
|
||||||
ursula = ursula_config.produce(rest_port=port + 100,
|
ursula = ursula_config.produce(rest_port=port + 100,
|
||||||
db_filepath=MOCK_URSULA_DB_FILEPATH,
|
db_filepath=MOCK_URSULA_DB_FILEPATH,
|
||||||
**ursula_overrides)
|
**ursula_overrides)
|
||||||
ursula._FOR_TEST = frames[1].frame.f_locals['request'].module
|
try:
|
||||||
|
ursula._FOR_TEST = test_name
|
||||||
|
except UnboundLocalError:
|
||||||
|
raise RuntimeError("Unable to find a test name to assign to this ursula in the first 10 frames.")
|
||||||
|
|
||||||
federated_ursulas.add(ursula)
|
federated_ursulas.add(ursula)
|
||||||
|
|
||||||
# Store this Ursula in our global testing cache.
|
# Store this Ursula in our global testing cache.
|
||||||
|
|
Loading…
Reference in New Issue