[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