Пример #1
0
    def me_changed(self, old_me, new_me):
        '''Changes self.me

        :param old_me: my old nip (not used in MapP2P)
        :param new_me: new nip
        '''
        Map.me_change(self, new_me)
Пример #2
0
    def __init__(self, maproute):
        Map.__init__(self, maproute.levels, maproute.gsize, Node, maproute.me)

        self.copy_from_maproute(maproute)
        self.remotable_funcs = [self.map_data_merge]

        self.tmp_deleted = {}
Пример #3
0
    def me_changed(self, old_me, new_me):
        '''Changes self.me

        :param old_me: my old nip (not used in MapP2P)
        :param new_me: new nip
        '''
        Map.me_change(self, new_me)
Пример #4
0
    def __init__(self, levels, gsize, me, pid):
        """levels, gsize, me: the same of Map

        pid: P2P id of the service associated to this map
        """

        Map.__init__(self, levels, gsize, ParticipantNode, me)

        self.pid = pid
Пример #5
0
    def __init__(self, levels, gsize, me, pid):
        """levels, gsize, me: the same of Map

        pid: P2P id of the service associated to this map
        """

        Map.__init__(self, levels, gsize, ParticipantNode, me)

        self.pid = pid
Пример #6
0
    def __init__(self, levels, gsize, me):

        Map.__init__(self, levels, gsize, RouteNode, me)

        self.events.add([
            'ROUTE_NEW',
            'ROUTE_DELETED',
            'ROUTE_REM_CHGED'  # the route's rem changed
        ])
        self.remotable_funcs = [self.free_nodes_nb]
Пример #7
0
    def setUp(self):
        self.levels = 4
        self.gsize = 256
        self.dataclass = DataClass

        self.map = Map(self.levels, self.gsize, self.dataclass)
Пример #8
0
class TestMap(unittest.TestCase):
    def setUp(self):
        self.levels = 4
        self.gsize = 256
        self.dataclass = DataClass

        self.map = Map(self.levels, self.gsize, self.dataclass)

    def test_len_map_node(self):
        '''Map node len'''
        self.assertEqual(len(self.map.node), 4)

    def test_node_get(self):
        '''Get a new node'''
        self.failUnless(isinstance(self.map.node_get(1, 3), DataClass))

    def test_node_add(self):
        '''Add a node'''
        self.assertEqual(self.map.node_nb[0], 0)
        self.map.node_add(lvl=0, id=0)
        self.assertEqual(self.map.node_nb[0], 1)

    def test_node_del(self):
        '''Delete a node'''
        self.test_node_add()  # Add a new node
        self.failUnless(isinstance(self.map.node[0][0], DataClass))

        self.map.node_del(lvl=0, id=0)
        self.assertEqual(self.map.node[0][0], None)

    def test_free_node_nb(self):
        '''Number of free nodes of levels'''
        self.assertEqual(self.map.free_nodes_nb(lvl=0), self.gsize)
        self.test_node_add()
        self.assertEqual(self.map.free_nodes_nb(lvl=0), self.gsize - 1)

    def test_free_nodes_list(self):
        '''Free nodes of specified level'''
        self.assertEqual(self.map.free_nodes_list(lvl=0), range(self.gsize))

    def test_is_in_level(self):
        '''Node nip belongs to our gnode of level'''
        self.assertEqual(self.map.is_in_level(self.map.me, 0), True)

    def test_ip_to_nip(self):
        '''Conversion IP -> NIP (Netsukuku IP)'''
        self.assertEqual(self.map.ip_to_nip(127), [127, 0, 0, 0])

    def test_nip_to_ip(self):
        '''Conversion IP -> NIP (Netsukuku IP)'''
        self.assertEqual(self.map.nip_to_ip([127, 0, 0, 0]), 127)

    def test_nip_cmp(self):
        '''Comparing two NIP'''
        self.assertEqual(self.map.nip_cmp([127, 0, 0, 1], [127, 0, 0, 0]), 3)
Пример #9
0
 def node_del(self, lvl, id, silent=False):
     if self.node_get(lvl, id).alive:
         Map.node_del(self, lvl, id, silent)
         self.node_get(lvl, id).alive = False
Пример #10
0
 def node_add(self, lvl, id, silent=0):
     if not self.node_get(lvl, id).alive:
         Map.node_add(self, lvl, id, silent)
         self.node_get(lvl, id).alive = True
Пример #11
0
    def setUp(self):
        self.levels = 4
        self.gsize  = 256
        self.dataclass = DataClass

        self.map = Map(self.levels, self.gsize, self.dataclass)
Пример #12
0
class TestMap(unittest.TestCase):

    def setUp(self):
        self.levels = 4
        self.gsize  = 256
        self.dataclass = DataClass

        self.map = Map(self.levels, self.gsize, self.dataclass)

    def test_len_map_node(self):
        '''Map node len'''
        self.assertEqual(len(self.map.node), 4)

    def test_node_get(self):
        '''Get a new node'''
        self.failUnless(isinstance(self.map.node_get(1,3), DataClass))

    def test_node_add(self):
        '''Add a node'''
        self.assertEqual(self.map.node_nb[0], 0)
        self.map.node_add(lvl=0, id=0)
        self.assertEqual(self.map.node_nb[0], 1)

    def test_node_del(self):
        '''Delete a node'''
        self.test_node_add() # Add a new node
        self.failUnless(isinstance(self.map.node[0][0], DataClass))

        self.map.node_del(lvl=0, id=0)
        self.assertEqual(self.map.node[0][0], None)

    def test_free_node_nb(self):
        '''Number of free nodes of levels'''
        self.assertEqual(self.map.free_nodes_nb(lvl=0), self.gsize)
        self.test_node_add()
        self.assertEqual(self.map.free_nodes_nb(lvl=0), self.gsize - 1)

    def test_free_nodes_list(self):
        '''Free nodes of specified level'''
        self.assertEqual(self.map.free_nodes_list(lvl=0), range(self.gsize))

    def test_is_in_level(self):
        '''Node nip belongs to our gnode of level'''
        self.assertEqual(self.map.is_in_level(self.map.me, 0), True)

    def test_ip_to_nip(self):
        '''Conversion IP -> NIP (Netsukuku IP)'''
        self.assertEqual(self.map.ip_to_nip(127), [127, 0, 0, 0])

    def test_nip_to_ip(self):
        '''Conversion IP -> NIP (Netsukuku IP)'''
        self.assertEqual(self.map.nip_to_ip([127, 0, 0, 0]), 127)

    def test_nip_cmp(self):
        '''Comparing two NIP'''
        self.assertEqual(self.map.nip_cmp([127, 0, 0, 1], [127, 0, 0, 0]), 3)
Пример #13
0
    def __init__(self, levels, gsize, me):

        Map.__init__(self, levels, gsize, RouteNode, me)

        self.events.add(["ROUTE_NEW", "ROUTE_DELETED", "ROUTE_REM_CHGED"])  # the route's rem changed
        self.remotable_funcs = [self.free_nodes_nb]
Пример #14
0
 def node_del(self, lvl, id):
     Map.node_del(self, lvl, id)
Пример #15
0
 def node_del(self, lvl, id):
     Map.node_del(self, lvl, id)