diff --git a/nucypher/characters/lawful.py b/nucypher/characters/lawful.py index 4f0f2b7c9..e6cd716a4 100644 --- a/nucypher/characters/lawful.py +++ b/nucypher/characters/lawful.py @@ -596,13 +596,13 @@ class Bob(Character): raise _MapClass.NowhereToBeFound(f"Asked {len(self.known_nodes)} nodes, but none had map {map_id} ") self.block_until_number_of_known_nodes_is(8, timeout=2, learn_on_this_thread=True) - nodes_with_map = self.matching_nodes_among(self.known_nodes, no_less_than=8) + nodes_with_map = self.matching_nodes_among(self.known_nodes) random.shuffle(nodes_with_map) for node in nodes_with_map: try: response = network_middleware.get_treasure_map_from_node(node=node, map_id=map_id) - except NodeSeemsToBeDown: + except (NodeSeemsToBeDown, self.NotEnoughNodes): continue except network_middleware.NotFound: self.log.info(f"Node {node} claimed not to have TreasureMap {map_id}") diff --git a/nucypher/policy/policies.py b/nucypher/policy/policies.py index 1e8edb03c..4cedd40e6 100644 --- a/nucypher/policy/policies.py +++ b/nucypher/policy/policies.py @@ -167,7 +167,7 @@ class BlockchainArrangement(Arrangement): class PolicyPayloadMutex(DeferredList): - def __init__(self, deferredList, percent_to_complete_before_release=10, *args, **kwargs): + def __init__(self, deferredList, percent_to_complete_before_release=5, *args, **kwargs): self.percent_to_complete_before_release = percent_to_complete_before_release self._policy_locking_queue = Queue() diff --git a/tests/acceptance/network/test_network_actors.py b/tests/acceptance/network/test_network_actors.py index 79ee5b790..2f615167e 100644 --- a/tests/acceptance/network/test_network_actors.py +++ b/tests/acceptance/network/test_network_actors.py @@ -112,7 +112,7 @@ def test_bob_can_retreive_the_treasure_map_and_decrypt_it(enacted_federated_poli # through a side-channel with Alice. # If Bob doesn't know about any Ursulas, he can't find the TreasureMap via the REST swarm: - with pytest.raises(bob.NotEnoughTeachers): + with pytest.raises(bob.NotEnoughNodes): treasure_map_from_wire = bob.get_treasure_map(enacted_federated_policy.alice.stamp, enacted_federated_policy.label) diff --git a/tests/fixtures.py b/tests/fixtures.py index f94d65643..488ccce54 100644 --- a/tests/fixtures.py +++ b/tests/fixtures.py @@ -357,8 +357,9 @@ def blockchain_alice(alice_blockchain_test_config, testerchain): @pytest.fixture(scope="module") def federated_bob(bob_federated_test_config): - _bob = bob_federated_test_config.produce() - return _bob + bob = bob_federated_test_config.produce() + _d = bob.start_learning_loop() + return bob @pytest.fixture(scope="module") diff --git a/tests/integration/learning/test_discovery_phases.py b/tests/integration/learning/test_discovery_phases.py index db4546210..f7bcd4d60 100644 --- a/tests/integration/learning/test_discovery_phases.py +++ b/tests/integration/learning/test_discovery_phases.py @@ -24,9 +24,6 @@ import pytest_twisted from twisted.internet.threads import deferToThread from nucypher.characters.lawful import Ursula -from tests.performance_mocks import NotAPublicKey, NotARestApp, VerificationTracker, mock_cert_loading, \ - mock_cert_storage, mock_message_verification, mock_metadata_validation, mock_pubkey_from_bytes, mock_secret_source, \ - mock_signature_bytes, mock_stamp_call, mock_verify_node from tests.utils.middleware import SluggishLargeFleetMiddleware from umbral.keys import UmbralPublicKey from tests.mock.performance_mocks import ( @@ -170,7 +167,7 @@ def test_mass_treasure_map_placement(fleet_of_highperf_mocked_ursulas, if policy.treasure_map in list(ursula.treasure_maps.values()): nodes_that_have_the_map_when_we_unblock.append(ursula) - approximate_number_of_nodes_we_expect_to_have_the_map_already = len(nodes_we_expect_to_have_the_map) / 10 + approximate_number_of_nodes_we_expect_to_have_the_map_already = len(nodes_we_expect_to_have_the_map) / 5 assert len(nodes_that_have_the_map_when_we_unblock) == pytest.approx( approximate_number_of_nodes_we_expect_to_have_the_map_already, .5) diff --git a/tests/integration/learning/test_learning_upgrade.py b/tests/integration/learning/test_learning_upgrade.py index 5d08bc314..f93d95a83 100644 --- a/tests/integration/learning/test_learning_upgrade.py +++ b/tests/integration/learning/test_learning_upgrade.py @@ -22,8 +22,8 @@ from bytestring_splitter import VariableLengthBytestring from eth_utils.address import to_checksum_address from twisted.logger import LogLevel, globalLogPublisher +from nucypher.acumen.nicknames import nickname_from_seed from nucypher.characters.base import Character -from nucypher.network.nicknames import nickname_from_seed from tests.utils.middleware import MockRestMiddleware from tests.utils.ursula import make_federated_ursulas diff --git a/tests/integration/network/test_failure_modes.py b/tests/integration/network/test_failure_modes.py index 1788b6d5f..fb5c2c6d6 100644 --- a/tests/integration/network/test_failure_modes.py +++ b/tests/integration/network/test_failure_modes.py @@ -44,7 +44,7 @@ def test_bob_does_not_let_a_connection_error_stop_him(enacted_federated_policy, federated_bob.network_middleware = NodeIsDownMiddleware() federated_bob.network_middleware.node_is_down(ursula1) - with pytest.raises(TreasureMap.NowhereToBeFound): + with pytest.raises(federated_bob.NotEnoughNodes): federated_bob.get_treasure_map(federated_alice.stamp, enacted_federated_policy.label) federated_bob.remember_node(ursula2) diff --git a/tests/integration/network/test_treasure_map_integration.py b/tests/integration/network/test_treasure_map_integration.py index 608cdf151..86933d6d5 100644 --- a/tests/integration/network/test_treasure_map_integration.py +++ b/tests/integration/network/test_treasure_map_integration.py @@ -40,6 +40,7 @@ def test_alice_sets_treasure_map(enacted_federated_policy, federated_ursulas): """ enacted_federated_policy.publish_treasure_map(network_middleware=MockRestMiddleware()) treasure_map_index = bytes.fromhex(enacted_federated_policy.treasure_map.public_id()) + # TODO: Ensure that this is... an actual... hmm... 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