def test_extract_node_id(self): n = NodeID.for_host('127.0.0.1') n1 = extract_node_id(n) self.assertIs(n, n1) n2 = extract_node_id(str(n)) self.assertEqual(n, n2) node = Node(n) n3 = extract_node_id(node) self.assertEqual(n, n3) self.assertRaises(InvalidNodeIDError, extract_node_id, 'abc') self.assertRaises(TypeError, extract_node_id, 10) node = Node(n) node.id = '10' self.assertRaises(InvalidNodeIDError, extract_node_id, node)
def __contains__(self, node): node_id = extract_node_id(node) return node_id in self._d
def __getitem__(self, node_id): node_id = extract_node_id(node_id) return self._d[node_id]
def __delitem__(self, node): node_id = extract_node_id(node) try: del self._d[node_id] except KeyError: pass