diff --git a/nucypher/characters/base.py b/nucypher/characters/base.py index 987b7312c..717b47660 100644 --- a/nucypher/characters/base.py +++ b/nucypher/characters/base.py @@ -62,13 +62,13 @@ class Character(Learner): A base-class for any character in our cryptography protocol narrative. """ - _display_name_template = "({})⇀{}↽ ({})" + _display_name_template = "({})⇀{}↽ ({})" # Used in __repr__ and in cls.from_bytes _default_crypto_powerups = None _stamp = None _crashed = False from nucypher.network.protocols import SuspiciousActivity # Ship this exception with every Character. - from nucypher.crypto.signing import InvalidSignature + from nucypher.crypto.signing import InvalidSignature # TODO: Restore nucypher Signing exceptions def __init__(self, domains: Set = None, diff --git a/nucypher/network/server.py b/nucypher/network/server.py index fd35dc76c..a67067c4b 100644 --- a/nucypher/network/server.py +++ b/nucypher/network/server.py @@ -359,9 +359,7 @@ def make_rest_app( from nucypher.policy.models import TreasureMap try: - treasure_map = TreasureMap.from_bytes( - bytes_representation=request.data, - verify=True) + treasure_map = TreasureMap.from_bytes(bytes_representation=request.data, verify=True) except TreasureMap.InvalidSignature: do_store = False else: diff --git a/tests/network/test_network_actors.py b/tests/network/test_network_actors.py index aaf65f019..aaeaefd3b 100644 --- a/tests/network/test_network_actors.py +++ b/tests/network/test_network_actors.py @@ -26,6 +26,7 @@ from nucypher.characters.unlawful import Vladimir from nucypher.crypto.api import keccak_digest from nucypher.crypto.powers import SigningPower from nucypher.network.nicknames import nickname_from_seed +from nucypher.network.nodes import FleetStateTracker from nucypher.utilities.sandbox.constants import INSECURE_DEVELOPMENT_PASSWORD from nucypher.utilities.sandbox.middleware import MockRestMiddleware @@ -46,17 +47,17 @@ def test_all_blockchain_ursulas_know_about_all_other_ursulas(blockchain_ursulas, @pytest.mark.slow() -@pytest.mark.skip("What do we want this test to do now?") def test_blockchain_alice_finds_ursula_via_rest(blockchain_alice, blockchain_ursulas): + # Imagine alice knows of nobody. - blockchain_alice.known_nodes = {} + blockchain_alice._Learner__known_nodes = FleetStateTracker() - new_nodes = blockchain_alice.learn_from_teacher_node() + blockchain_alice.remember_node(blockchain_ursulas[0]) + blockchain_alice.learn_from_teacher_node() + assert len(blockchain_alice.known_nodes) == len(blockchain_ursulas[:-1]) # TODO: #1035 - assert len(new_nodes) == len(blockchain_ursulas) - - for ursula in blockchain_ursulas: - assert ursula.stamp.as_umbral_pubkey() in new_nodes + for ursula in blockchain_ursulas[:-1]: # TODO: #1035 + assert ursula in blockchain_alice.known_nodes def test_alice_creates_policy_with_correct_hrac(idle_federated_policy): @@ -66,19 +67,18 @@ def test_alice_creates_policy_with_correct_hrac(idle_federated_policy): alice = idle_federated_policy.alice bob = idle_federated_policy.bob - assert idle_federated_policy.hrac() == keccak_digest( - bytes(alice.stamp) + bytes(bob.stamp) + idle_federated_policy.label) + assert idle_federated_policy.hrac() == keccak_digest(bytes(alice.stamp) + + bytes(bob.stamp) + + idle_federated_policy.label) def test_alice_sets_treasure_map(enacted_federated_policy, federated_ursulas): """ Having enacted all the policies of a PolicyGroup, Alice creates a TreasureMap and ...... TODO """ - enacted_federated_policy.publish_treasure_map(network_middleware=MockRestMiddleware()) - - treasure_map_as_set_on_network = list(federated_ursulas)[0].treasure_maps[ - keccak_digest(unhexlify(enacted_federated_policy.treasure_map.public_id()))] + treasure_map_index = bytes.fromhex(enacted_federated_policy.treasure_map.public_id()) + treasure_map_as_set_on_network = list(federated_ursulas)[0].treasure_maps[treasure_map_index] assert treasure_map_as_set_on_network == enacted_federated_policy.treasure_map @@ -87,8 +87,9 @@ def test_treasure_map_stored_by_ursula_is_the_correct_one_for_bob(federated_alic """ The TreasureMap given by Alice to Ursula is the correct one for Bob; he can decrypt and read it. """ - treasure_map_as_set_on_network = list(federated_ursulas)[0].treasure_maps[ - keccak_digest(unhexlify(enacted_federated_policy.treasure_map.public_id()))] + + treasure_map_index = bytes.fromhex(enacted_federated_policy.treasure_map.public_id()) + treasure_map_as_set_on_network = list(federated_ursulas)[0].treasure_maps[treasure_map_index] hrac_by_bob = federated_bob.construct_policy_hrac(federated_alice.stamp, enacted_federated_policy.label) assert enacted_federated_policy.hrac() == hrac_by_bob