From afd3af091abb4b5b70c9062376ba4a7298379cd1 Mon Sep 17 00:00:00 2001 From: Jonathan Zernik Date: Tue, 24 May 2022 21:41:56 -0700 Subject: [PATCH] Use default peer port config when port not specified (#2218) --- squeaknode/config/config.py | 2 +- squeaknode/core/peers.py | 5 +++++ squeaknode/node/squeak_controller.py | 6 +++++- squeaknode/node/squeak_store.py | 3 ++- tests/core/test_peers.py | 26 ++++++++++++++++++++++---- tests/node/test_squeak_controller.py | 1 + tests/utils.py | 1 + 7 files changed, 37 insertions(+), 7 deletions(-) diff --git a/squeaknode/config/config.py b/squeaknode/config/config.py index b06b01c1..0455f54f 100644 --- a/squeaknode/config/config.py +++ b/squeaknode/config/config.py @@ -40,7 +40,7 @@ DEFAULT_LOG_LEVEL = "INFO" DEFAULT_MAX_SQUEAKS = 10000 DEFAULT_MAX_SQUEAKS_PER_PUBLIC_KEY_PER_BLOCK = 100 DEFAULT_SERVER_RPC_HOST = "0.0.0.0" -DEFAULT_SERVER_RPC_PORT = None +DEFAULT_SERVER_RPC_PORT = 8555 DEFAULT_EXTERNAL_PORT = 8555 DEFAULT_ADMIN_RPC_HOST = "0.0.0.0" DEFAULT_ADMIN_RPC_PORT = 8994 diff --git a/squeaknode/core/peers.py b/squeaknode/core/peers.py index f7556022..8ed42262 100644 --- a/squeaknode/core/peers.py +++ b/squeaknode/core/peers.py @@ -26,8 +26,13 @@ from squeaknode.core.squeak_peer import SqueakPeer def create_saved_peer( peer_name: str, peer_address: PeerAddress, + default_peer_port: int, ) -> SqueakPeer: validate_saved_peer_name(peer_name) + if peer_address.port == 0: + peer_address = peer_address._replace( + port=default_peer_port, + ) return SqueakPeer( peer_id=None, peer_name=peer_name, diff --git a/squeaknode/node/squeak_controller.py b/squeaknode/node/squeak_controller.py index f34d76a8..783e99b2 100644 --- a/squeaknode/node/squeak_controller.py +++ b/squeaknode/node/squeak_controller.py @@ -187,7 +187,11 @@ class SqueakController: return self.squeak_store.get_squeak_profile_private_key(profile_id) def create_peer(self, peer_name: str, peer_address: PeerAddress): - return self.squeak_store.create_peer(peer_name, peer_address) + return self.squeak_store.create_peer( + peer_name, + peer_address, + self.config.server.port or 0, + ) def get_peer(self, peer_id: int) -> Optional[SqueakPeer]: return self.squeak_store.get_peer(peer_id) diff --git a/squeaknode/node/squeak_store.py b/squeaknode/node/squeak_store.py index 21276961..89742472 100644 --- a/squeaknode/node/squeak_store.py +++ b/squeaknode/node/squeak_store.py @@ -389,10 +389,11 @@ class SqueakStore: )) return get_profile_private_key(profile) - def create_peer(self, peer_name: str, peer_address: PeerAddress): + def create_peer(self, peer_name: str, peer_address: PeerAddress, default_peer_port): squeak_peer = create_saved_peer( peer_name, peer_address, + default_peer_port, ) return self.squeak_db.insert_peer(squeak_peer) diff --git a/tests/core/test_peers.py b/tests/core/test_peers.py index fab19b75..51ae611d 100644 --- a/tests/core/test_peers.py +++ b/tests/core/test_peers.py @@ -31,6 +31,11 @@ def peer_name(): yield "fake_peer_name" +@pytest.fixture +def default_peer_port(): + yield 9999 + + @pytest.fixture def peer_address(): yield PeerAddress( @@ -58,24 +63,37 @@ def peer_address_with_no_port(): ) -def test_create_saved_peer(peer_name, peer_address): +def test_create_saved_peer(peer_name, peer_address, default_peer_port): peer = create_saved_peer( peer_name, peer_address, + default_peer_port, ) assert peer.peer_name == peer_name assert peer.address == peer_address -def test_create_saved_peer_empty_name(peer_address): - create_saved_peer("", peer_address) +def test_create_saved_peer_empty_name(peer_address, default_peer_port): + create_saved_peer("", peer_address, default_peer_port) -def test_create_saved_peer_use_tor(peer_name, peer_address_with_tor): +def test_create_saved_peer_no_port(peer_name, peer_address_with_no_port, default_peer_port): + peer = create_saved_peer( + peer_name, + peer_address_with_no_port, + default_peer_port, + ) + + assert peer.peer_name == peer_name + assert peer.address.port == default_peer_port + + +def test_create_saved_peer_use_tor(peer_name, peer_address_with_tor, default_peer_port): peer = create_saved_peer( peer_name, peer_address_with_tor, + default_peer_port, ) assert peer.peer_name == peer_name diff --git a/tests/node/test_squeak_controller.py b/tests/node/test_squeak_controller.py index 2715e215..5273e17c 100644 --- a/tests/node/test_squeak_controller.py +++ b/tests/node/test_squeak_controller.py @@ -167,4 +167,5 @@ def test_create_peer(squeak_store, squeak_controller, peer_address): squeak_store.create_peer.assert_called_with( "fake_peer_name", peer_address, + 8555, ) diff --git a/tests/utils.py b/tests/utils.py index 80f41db6..df239a24 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -121,6 +121,7 @@ def gen_squeak_peer(peer_name): return create_saved_peer( peer_name, peer_address, + 0, )