From 93a70179a8c920a4b100c42fddbf5495453b433b Mon Sep 17 00:00:00 2001 From: jMyles Date: Mon, 6 Nov 2017 13:35:54 -0800 Subject: [PATCH 1/2] Test for #98 --- tests/network/test_network_actors.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tests/network/test_network_actors.py b/tests/network/test_network_actors.py index 33fe783d6..7a2c3c2e8 100644 --- a/tests/network/test_network_actors.py +++ b/tests/network/test_network_actors.py @@ -29,7 +29,7 @@ def make_fake_ursulas(how_many): for _counter, ursula in enumerate(URSULAS): EVENT_LOOP.run_until_complete(ursula.server.bootstrap([("127.0.0.1", URSULA_PORT)])) - EVENT_LOOP.run_until_complete(ursula.server.bootstrap([("127.0.0.1", URSULA_PORT + _counter)])) + # EVENT_LOOP.run_until_complete(ursula.server.bootstrap([("127.0.0.1", URSULA_PORT + _c) for _c in range(how_many)])) ursula.publish_interface_information() return URSULAS @@ -50,6 +50,16 @@ EVENT_LOOP.run_until_complete(BOB.server.bootstrap([("127.0.0.1", URSULA_PORT)]) community_meeting(ALICE, BOB, URSULAS[0]) +def test_all_ursulas_know_about_all_other_ursulas(): + ignorance = [] + for acounter, announcing_ursula in enumerate(list_all_ursulas()): + for counter, propagating_ursula in enumerate(URSULAS): + if not digest(announcing_ursula) in propagating_ursula.server.storage: + ignorance.append((counter, acounter)) + if ignorance: + pytest.fail(str(["{} didn't know about {}".format(counter, acounter) for counter, acounter in ignorance])) + + def test_alice_finds_ursula(): ursula_index = 1 all_ursulas = list_all_ursulas() @@ -61,7 +71,7 @@ def test_alice_finds_ursula(): assert port == URSULA_PORT + ursula_index -def test_ursula_with_bad_interface_key_does_not_propagate(): +def test_vladimir_illegal_interface_key_does_not_propagate(): vladimir = URSULAS[0] ursula = URSULAS[1] From 2581c579e31a591b9ddc6673abdfa05d19be6e16 Mon Sep 17 00:00:00 2001 From: jMyles Date: Mon, 6 Nov 2017 13:44:59 -0800 Subject: [PATCH 2/2] Fixes #98. --- nkms/network/server.py | 12 ++++-------- tests/network/test_network_actors.py | 3 +-- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/nkms/network/server.py b/nkms/network/server.py index fbe883486..362267585 100644 --- a/nkms/network/server.py +++ b/nkms/network/server.py @@ -53,14 +53,10 @@ class NuCypherDHTServer(Server): self.storage[dkey] = value ds = [] for n in nodes: - if self.node.id == n.id: - # TOOD: Consider whether to store stuff locally. We don't really know yet. Probably at least some things. - ds.append(False) - else: - disposition, value_was_set = await self.protocol.callStore(n, dkey, value) - if value_was_set: - self.digests_set += 1 - ds.append(value_was_set) + _disposition, value_was_set = await self.protocol.callStore(n, dkey, value) + if value_was_set: + self.digests_set += 1 + ds.append(value_was_set) # return true only if at least one store call succeeded return any(ds) diff --git a/tests/network/test_network_actors.py b/tests/network/test_network_actors.py index 7a2c3c2e8..6061be86b 100644 --- a/tests/network/test_network_actors.py +++ b/tests/network/test_network_actors.py @@ -28,8 +28,7 @@ def make_fake_ursulas(how_many): URSULAS.append(_URSULA) for _counter, ursula in enumerate(URSULAS): - EVENT_LOOP.run_until_complete(ursula.server.bootstrap([("127.0.0.1", URSULA_PORT)])) - # EVENT_LOOP.run_until_complete(ursula.server.bootstrap([("127.0.0.1", URSULA_PORT + _c) for _c in range(how_many)])) + EVENT_LOOP.run_until_complete(ursula.server.bootstrap([("127.0.0.1", URSULA_PORT + _c) for _c in range(how_many)])) ursula.publish_interface_information() return URSULAS