mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 19:01:54 +00:00
40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
import unittest
|
|
|
|
from utils.networks.mesh import dialled_peers, is_full, listens
|
|
|
|
HUB_PEER = {"host": "mgr", "address": "10.100.0.1", "is_hub": True}
|
|
SPOKE_PEER = {"host": "wrk", "address": "10.100.0.11", "is_hub": False}
|
|
OTHER_PEER = {"host": "nfs", "address": "10.100.0.12", "is_hub": False}
|
|
|
|
HUB = {"name": "swarm", "is_hub": True, "peers": [SPOKE_PEER, OTHER_PEER]}
|
|
SPOKE = {"name": "swarm", "is_hub": False, "peers": [HUB_PEER]}
|
|
FULL = {"name": "alpha", "is_hub": False, "peers": [SPOKE_PEER, OTHER_PEER]}
|
|
|
|
|
|
class TestHubAndSpoke(unittest.TestCase):
|
|
def test_only_the_hub_listens(self):
|
|
self.assertTrue(listens(HUB))
|
|
self.assertFalse(listens(SPOKE))
|
|
|
|
def test_a_spoke_dials_its_hub_alone(self):
|
|
self.assertEqual([HUB_PEER], dialled_peers(SPOKE))
|
|
|
|
def test_the_hub_dials_nobody(self):
|
|
self.assertEqual([], dialled_peers(HUB))
|
|
|
|
def test_neither_is_a_full_mesh(self):
|
|
self.assertFalse(is_full(HUB))
|
|
self.assertFalse(is_full(SPOKE))
|
|
|
|
|
|
class TestFullMesh(unittest.TestCase):
|
|
def test_a_member_listens(self):
|
|
self.assertTrue(is_full(FULL))
|
|
self.assertTrue(listens(FULL))
|
|
|
|
def test_a_member_dials_every_peer(self):
|
|
self.assertEqual([SPOKE_PEER, OTHER_PEER], dialled_peers(FULL))
|
|
|
|
def test_a_malformed_peer_list_dials_nobody(self):
|
|
self.assertEqual([], dialled_peers({"is_hub": False, "peers": "mgr"}))
|