[Neo-report] r2429 gregory - in /trunk/neo: pt.py tests/testPT.py

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Nov 8 11:24:14 CET 2010


Author: gregory
Date: Mon Nov  8 11:24:14 2010
New Revision: 2429

Log:
A node must must never be down or broken when used in the partition table.

Modified:
    trunk/neo/pt.py
    trunk/neo/tests/testPT.py

Modified: trunk/neo/pt.py
==============================================================================
--- trunk/neo/pt.py [iso-8859-1] (original)
+++ trunk/neo/pt.py [iso-8859-1] Mon Nov  8 11:24:14 2010
@@ -159,7 +159,7 @@ class PartitionTable(object):
         if state == CellStates.DISCARDED:
             return self.removeCell(offset, node)
         if node.isBroken() or node.isDown():
-            return
+            raise PartitionTableException('Invalid node state')
 
         self.count_dict.setdefault(node, 0)
         row = self.partition_list[offset]

Modified: trunk/neo/tests/testPT.py
==============================================================================
--- trunk/neo/tests/testPT.py [iso-8859-1] (original)
+++ trunk/neo/tests/testPT.py [iso-8859-1] Mon Nov  8 11:24:14 2010
@@ -18,7 +18,7 @@
 import unittest
 from mock import Mock
 from neo.protocol import NodeStates, CellStates
-from neo.pt import Cell, PartitionTable
+from neo.pt import Cell, PartitionTable, PartitionTableException
 from neo.node import StorageNode
 from neo.tests import NeoUnitTestBase
 
@@ -113,12 +113,14 @@ class PartitionTableTests(NeoUnitTestBas
             self.assertEqual(len(pt.partition_list[x]), 0)
         self.assertEqual(pt.count_dict[sn1], 0)
         sn1.setState(NodeStates.BROKEN)
-        pt.setCell(0, sn1, CellStates.UP_TO_DATE)
+        self.assertRaises(PartitionTableException, pt.setCell,
+            0, sn1, CellStates.UP_TO_DATE)
         for x in xrange(num_partitions):
             self.assertEqual(len(pt.partition_list[x]), 0)
         self.assertEqual(pt.count_dict[sn1], 0)
         sn1.setState(NodeStates.DOWN)
-        pt.setCell(0, sn1, CellStates.UP_TO_DATE)
+        self.assertRaises(PartitionTableException, pt.setCell,
+            0, sn1, CellStates.UP_TO_DATE)
         for x in xrange(num_partitions):
             self.assertEqual(len(pt.partition_list[x]), 0)
         self.assertEqual(pt.count_dict[sn1], 0)





More information about the Neo-report mailing list