diff --git a/neo/master/tests/testMasterApp.py b/neo/master/tests/testMasterApp.py index 3b28bec74a24d48a30a49e8ff36f85074e4d33ab..d264229d2a1d70e92aef422842b1bf4d1909c2e1 100644 --- a/neo/master/tests/testMasterApp.py +++ b/neo/master/tests/testMasterApp.py @@ -18,13 +18,14 @@ import unittest, logging, os from tempfile import mkstemp from mock import Mock +from neo.tests.base import NeoTestBase from neo.master.app import Application from neo.protocol import INVALID_PTID, INVALID_OID, INVALID_TID, \ INVALID_UUID, Packet, NOTIFY_NODE_INFORMATION from neo.node import MasterNode, ClientNode, StorageNode from neo.storage.mysqldb import p64, u64 -class MasterAppTests(unittest.TestCase): +class MasterAppTests(NeoTestBase): def setUp(self): logging.basicConfig(level = logging.WARNING) @@ -81,18 +82,6 @@ server: 127.0.0.1:10023 # Delete tmp file os.remove(self.tmp_path) - def getNewUUID(self): - uuid = INVALID_UUID - while uuid == INVALID_UUID: - uuid = os.urandom(16) - self.uuid = uuid - return uuid - - def checkNoPacketSent(self, conn): - self.assertEquals(len(conn.mockGetNamedCalls('notify')), 0) - self.assertEquals(len(conn.mockGetNamedCalls('answer')), 0) - self.assertEquals(len(conn.mockGetNamedCalls('ask')), 0) - def test_01_getNextPartitionTableID(self): # must raise as we don"t have one self.assertEqual(self.app.lptid, INVALID_PTID) @@ -166,16 +155,8 @@ server: 127.0.0.1:10023 self.app.broadcastNodeInformation(c_node) # check conn self.checkNoPacketSent(client_conn) - self.assertEquals(len(master_conn.mockGetNamedCalls("notify")), 1) - call = master_conn.mockGetNamedCalls("notify")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEqual(packet.getType(), NOTIFY_NODE_INFORMATION) - self.assertEquals(len(storage_conn.mockGetNamedCalls("notify")), 1) - call = storage_conn.mockGetNamedCalls("notify")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEqual(packet.getType(), NOTIFY_NODE_INFORMATION) + self.checkNotifyNodeInformation(master_conn) + self.checkNotifyNodeInformation(storage_conn) # address defined and client type master_conn = Mock({"getUUID" : master_uuid}) @@ -186,16 +167,8 @@ server: 127.0.0.1:10023 self.app.broadcastNodeInformation(c_node) # check conn self.checkNoPacketSent(client_conn) - self.assertEquals(len(master_conn.mockGetNamedCalls("notify")), 1) - call = master_conn.mockGetNamedCalls("notify")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEqual(packet.getType(), NOTIFY_NODE_INFORMATION) - self.assertEquals(len(storage_conn.mockGetNamedCalls("notify")), 1) - call = storage_conn.mockGetNamedCalls("notify")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEqual(packet.getType(), NOTIFY_NODE_INFORMATION) + self.checkNotifyNodeInformation(master_conn) + self.checkNotifyNodeInformation(storage_conn) # address defined and storage type master_conn = Mock({"getUUID" : master_uuid}) @@ -205,21 +178,9 @@ server: 127.0.0.1:10023 s_node = StorageNode(uuid = self.getNewUUID(), server=("127.0.0.1", 1351)) self.app.broadcastNodeInformation(s_node) # check conn - self.assertEquals(len(client_conn.mockGetNamedCalls("notify")), 1) - call = client_conn.mockGetNamedCalls("notify")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEqual(packet.getType(), NOTIFY_NODE_INFORMATION) - self.assertEquals(len(master_conn.mockGetNamedCalls("notify")), 1) - call = master_conn.mockGetNamedCalls("notify")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEqual(packet.getType(), NOTIFY_NODE_INFORMATION) - self.assertEquals(len(storage_conn.mockGetNamedCalls("notify")), 1) - call = storage_conn.mockGetNamedCalls("notify")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEqual(packet.getType(), NOTIFY_NODE_INFORMATION) + self.checkNotifyNodeInformation(client_conn) + self.checkNotifyNodeInformation(master_conn) + self.checkNotifyNodeInformation(storage_conn) if __name__ == '__main__': diff --git a/neo/master/tests/testMasterElectionHandler.py b/neo/master/tests/testMasterElectionHandler.py index 920c3a5d831e489a1ec9d8f6d33930dc2e7015be..a43a57ce3daac1c943b87a0004ae468c74527772 100644 --- a/neo/master/tests/testMasterElectionHandler.py +++ b/neo/master/tests/testMasterElectionHandler.py @@ -163,7 +163,7 @@ server: 127.0.0.1:10023 ip_address=ip, port=port, name=self.app.name,) - self.checkAcceptNodeIdentification(conn, packet) + self.checkAcceptNodeIdentification(conn, answered_packet=packet) return uuid # Method to test the kind of packet returned in answer @@ -521,7 +521,7 @@ server: 127.0.0.1:10023 self.assertEqual(len(self.app.nm.getMasterNodeList()), 1) self.assertEqual(node.getUUID(), uuid) self.assertEqual(node.getState(), RUNNING_STATE) - self.checkAcceptNodeIdentification(conn, packet) + self.checkAcceptNodeIdentification(conn, answered_packet=packet) # unknown node conn = Mock({"_addPacket" : None, "abort" : None, "expectMessage" : None, "isServerConnection" : True}) @@ -537,7 +537,7 @@ server: 127.0.0.1:10023 port=self.master_port+1, name=self.app.name,) self.assertEqual(len(self.app.nm.getMasterNodeList()), 2) - self.checkAcceptNodeIdentification(conn, packet) + self.checkAcceptNodeIdentification(conn, answered_packet=packet) self.assertEqual(len(self.app.unconnected_master_node_set), 2) self.assertEqual(len(self.app.negotiating_master_node_set), 0) # broken node diff --git a/neo/master/tests/testMasterService.py b/neo/master/tests/testMasterService.py index a85ee16721601fb329564437b5b3592aa6f94c7a..037304a1b5c0a81b61db106d767ff816bd69bf66 100644 --- a/neo/master/tests/testMasterService.py +++ b/neo/master/tests/testMasterService.py @@ -130,7 +130,7 @@ server: 127.0.0.1:10023 # test alien cluster conn = Mock({"_addPacket" : None, "abort" : None, "expectMessage" : None}) self.service.handleRequestNodeIdentification(conn, packet, *args) - self.checkAcceptNodeIdentification(conn, packet) + self.checkAcceptNodeIdentification(conn, answered_packet=packet) return uuid # Tests @@ -156,7 +156,7 @@ server: 127.0.0.1:10023 ip_address='127.0.0.1', port=self.storage_port, name=self.app.name,) - self.checkAcceptNodeIdentification(conn, packet) + self.checkAcceptNodeIdentification(conn, answered_packet=packet) self.assertEquals(len(self.app.nm.getStorageNodeList()), 1) sn = self.app.nm.getStorageNodeList()[0] self.assertEquals(sn.getServer(), ('127.0.0.1', self.storage_port)) @@ -174,7 +174,7 @@ server: 127.0.0.1:10023 ip_address='127.0.0.1', port=self.storage_port, name=self.app.name,) - self.checkAcceptNodeIdentification(conn, packet) + self.checkAcceptNodeIdentification(conn, answered_packet=packet) sn = self.app.nm.getStorageNodeList()[0] self.assertEquals(sn.getServer(), ('127.0.0.1', self.storage_port)) self.assertEquals(sn.getUUID(), uuid) @@ -220,7 +220,7 @@ server: 127.0.0.1:10023 ip_address='127.0.0.1', port=self.storage_port, name=self.app.name,) - self.checkAcceptNodeIdentification(conn, packet) + self.checkAcceptNodeIdentification(conn, answered_packet=packet) self.assertEquals(len(self.app.nm.getStorageNodeList()), 1) sn = self.app.nm.getStorageNodeList()[0] self.assertEquals(sn.getServer(), ('127.0.0.1', self.storage_port)) @@ -241,7 +241,7 @@ server: 127.0.0.1:10023 ip_address='127.0.0.2', port=10022, name=self.app.name,) - self.checkAcceptNodeIdentification(conn, packet) + self.checkAcceptNodeIdentification(conn, answered_packet=packet) call = conn.mockGetNamedCalls('answer')[0] new_uuid = call.getParam(0)._body[-16:] self.assertNotEquals(uuid, new_uuid) @@ -296,11 +296,11 @@ server: 127.0.0.1:10023 "getAddress" : ("127.0.0.1", self.storage_port)}) service.handleAskPrimaryMaster(conn, packet) self.assertEquals(len(conn.mockGetNamedCalls("abort")), 0) - self.checkAnswerPrimaryMaster(conn, packet) - self.checkNotifyNodeInformation(conn, 0) - self.checkSendPartitionTable(conn, 1) - self.checkSendPartitionTable(conn, 2) - self.checkStartOperation(conn, 3) + self.checkAnswerPrimaryMaster(conn, answered_packet=packet) + self.checkNotifyNodeInformation(conn, packet_number=0) + self.checkSendPartitionTable(conn, packet_number=1) + self.checkSendPartitionTable(conn, packet_number=2) + self.checkStartOperation(conn, packet_number=3) # Same but identify as a client node, must not get start operation message uuid = self.identifyToMasterNode(node_type=CLIENT_NODE_TYPE, port=11021) @@ -310,10 +310,10 @@ server: 127.0.0.1:10023 "getUUID" : uuid, "getAddress" : ("127.0.0.1", 11021)}) service.handleAskPrimaryMaster(conn, packet) self.assertEquals(len(conn.mockGetNamedCalls("abort")), 0) - self.checkAnswerPrimaryMaster(conn, packet) - self.checkNotifyNodeInformation(conn, 0) - self.checkSendPartitionTable(conn, 1) - self.checkSendPartitionTable(conn, 2) + self.checkAnswerPrimaryMaster(conn, answered_packet=packet) + self.checkNotifyNodeInformation(conn, packet_number=0) + self.checkSendPartitionTable(conn, packet_number=1) + self.checkSendPartitionTable(conn, packet_number=2) def test_03_handleAnnouncePrimaryMaster(self): service = self.service @@ -675,7 +675,7 @@ server: 127.0.0.1:10023 tid = self.app.ltid oid = self.app.loid service.handleAskLastIDs(conn, packet) - packet = self.checkAnswerLastIDs(conn, packet) + packet = self.checkAnswerLastIDs(conn, answered_packet=packet) loid, ltid, lptid = protocol._decodeAnswerLastIDs(packet._body) self.assertEqual(loid, oid) self.assertEqual(ltid, tid) @@ -695,7 +695,7 @@ server: 127.0.0.1:10023 conn = Mock({"getUUID" : uuid, "getAddress" : ("127.0.0.1", self.storage_port)}) service.handleAskUnfinishedTransactions(conn, packet) - packet = self.checkAnswerUnfinishedTransactions(conn, packet) + packet = self.checkAnswerUnfinishedTransactions(conn, answered_packet=packet) tid_list = protocol._decodeAnswerUnfinishedTransactions(packet._body)[0] self.assertEqual(len(tid_list), 0) # create some transaction @@ -709,7 +709,7 @@ server: 127.0.0.1:10023 conn = Mock({"getUUID" : uuid, "getAddress" : ("127.0.0.1", self.storage_port)}) service.handleAskUnfinishedTransactions(conn, packet) - packet = self.checkAnswerUnfinishedTransactions(conn, packet) + packet = self.checkAnswerUnfinishedTransactions(conn, answered_packet=packet) tid_list = protocol._decodeAnswerUnfinishedTransactions(packet._body)[0] self.assertEqual(len(tid_list), 3) diff --git a/neo/storage/tests/testStorageBootstrapHandler.py b/neo/storage/tests/testStorageBootstrapHandler.py index ff4246ac9971a4a7d28baf3b4639a3680ea53052..ee3365194933905af6c13569936dc2839ab0fd21 100644 --- a/neo/storage/tests/testStorageBootstrapHandler.py +++ b/neo/storage/tests/testStorageBootstrapHandler.py @@ -104,12 +104,6 @@ server: 127.0.0.1:10020 def getLastUUID(self): return self.uuid - # Method to test the kind of packet returned in answer - def checkCalledRequestNodeIdentification(self, conn, packet_number=0): - """ Check Request Node Identification has been send""" - self.assertEquals(len(conn.mockGetNamedCalls("abort")), 0) - self.checkAskPacket(conn, protocol.REQUEST_NODE_IDENTIFICATION) - # Tests def test_01_connectionCompleted(self): # trying mn is None -> RuntimeError @@ -121,7 +115,7 @@ server: 127.0.0.1:10020 # request identification self.app.trying_master_node = self.trying_master_node self.bootstrap.connectionCompleted(conn) - self.checkCalledRequestNodeIdentification(conn) + self.checkRequestNodeIdentification(conn) def test_02_connectionFailed(self): # trying mn is None -> RuntimeError @@ -220,25 +214,29 @@ server: 127.0.0.1:10020 self.checkNoPacketSent(conn) def test_07_handleNotReady(self): + # the primary is not ready conn = Mock({ "isServerConnection": False, "getAddress" : ("127.0.0.1", self.master_port), }) - # the primary is not ready self.app.trying_master_node = self.trying_master_node self.app.trying_master_node = self.trying_master_node self.bootstrap.handleNotReady(conn, None, None) self.assertEquals(self.app.primary_master_node, None) self.assertEquals(self.app.trying_master_node, None) - self.assertEquals(len(conn.mockGetNamedCalls("close")), 1) + self.checkClosed(conn) # another master is not ready + conn = Mock({ + "isServerConnection": False, + "getAddress" : ("127.0.0.1", self.master_port), + }) self.app.trying_master_node = self.trying_master_node master_node = MasterNode() self.app.primary_master_node = master_node self.bootstrap.handleNotReady(conn, None, None) self.assertEquals(self.app.primary_master_node, master_node) self.assertEquals(self.app.trying_master_node, None) - self.assertEquals(len(conn.mockGetNamedCalls("close")), 2) + self.checkClosed(conn) self.checkNoPacketSent(conn) def test_08_handleRequestNodeIdentification1(self): @@ -256,7 +254,7 @@ server: 127.0.0.1:10020 node_type=MASTER_NODE_TYPE, ip_address='127.0.0.1', name='',) - self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 0) + self.checkNoUUIDSet(conn) def test_08_handleRequestNodeIdentification2(self): # not a master node -> rejected @@ -272,7 +270,7 @@ server: 127.0.0.1:10020 node_type=STORAGE_NODE_TYPE, ip_address='127.0.0.1', name=self.app.name,) - self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 0) + self.checkNoUUIDSet(conn) def test_08_handleRequestNodeIdentification3(self): # bad app name -> rejected @@ -288,7 +286,7 @@ server: 127.0.0.1:10020 node_type=MASTER_NODE_TYPE, ip_address='127.0.0.1', name='INVALID_NAME',) - self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 0) + self.checkNoUUIDSet(conn) def test_08_handleRequestNodeIdentification4(self): # new master @@ -309,17 +307,9 @@ server: 127.0.0.1:10020 ip_address='192.168.1.1', name=self.app.name,) self.assertEquals(len(self.app.nm.getNodeList()), count + 1) - # check packet - self.assertEquals(len(conn.mockGetNamedCalls("answer")), 1) - call = conn.mockGetNamedCalls("answer")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEquals(packet.getType(), ACCEPT_NODE_IDENTIFICATION) - # check connection uuid - self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 1) - call = conn.mockGetNamedCalls("setUUID")[0] - self.assertEquals(call.getParam(0), uuid) - self.assertEquals(len(conn.mockGetNamedCalls("abort")), 1) + self.checkAcceptNodeIdentification(conn, answered_packet=packet, decode=True) + self.checkUUIDSet(conn, uuid) + self.checkAborted(conn) def test_08_handleRequestNodeIdentification5(self): # broken node -> rejected @@ -339,7 +329,7 @@ server: 127.0.0.1:10020 node_type=MASTER_NODE_TYPE, ip_address='127.0.0.1', name=self.app.name,) - self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 0) + self.checkNoUUIDSet(conn) def test_08_handleRequestNodeIdentification6(self): # master node is already known @@ -360,18 +350,9 @@ server: 127.0.0.1:10020 name=self.app.name) master = self.app.nm.getNodeByServer(('127.0.0.1', self.master_port)) self.assertEquals(master.getUUID(), uuid) - self.assertEquals(len(conn.mockGetNamedCalls("abort")), 1) - self.assertEquals(len(conn.mockGetNamedCalls("expectMessage")), 0) - # packet - self.assertEquals(len(conn.mockGetNamedCalls("answer")), 1) - call = conn.mockGetNamedCalls("answer")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEquals(packet.getType(), ACCEPT_NODE_IDENTIFICATION) - # connection uuid - self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 1) - call = conn.mockGetNamedCalls("setUUID")[0] - self.assertEquals(call.getParam(0), uuid) + self.checkAcceptNodeIdentification(conn, answered_packet=packet, decode=True) + self.checkUUIDSet(conn, uuid) + self.checkAborted(conn) def test_09_handleAcceptNodeIdentification1(self): # server socket connection -> rejected @@ -412,7 +393,7 @@ server: 127.0.0.1:10020 num_replicas=self.app.num_replicas, your_uuid=self.getNewUUID()) self.assertTrue(server not in self.app.nm.server_dict) - self.assertEquals(len(conn.mockGetNamedCalls("close")), 1) + self.checkClosed(conn) def test_09_handleAcceptNodeIdentification3(self): # bad address -> rejected @@ -432,7 +413,7 @@ server: 127.0.0.1:10020 your_uuid=self.getNewUUID()) server = ('127.0.0.1', self.master_port) self.assertTrue(server not in self.app.nm.server_dict) - self.assertEquals(len(conn.mockGetNamedCalls("close")), 1) + self.checkClosed(conn) def test_09_handleAcceptNodeIdentification4(self): # bad number of replicas/partitions @@ -459,9 +440,8 @@ server: 127.0.0.1:10020 num_partitions=self.app.num_partitions + 2, num_replicas=self.app.num_replicas, **args) - self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 0) + self.checkNoUUIDSet(conn) self.checkNoPacketSent(conn) - self.assertEquals(len(conn.mockGetNamedCalls("expectMessage")), 0) # create a new partition table self.bootstrap.handleAcceptNodeIdentification( num_partitions=self.app.num_partitions, @@ -472,8 +452,8 @@ server: 127.0.0.1:10020 self.assertEqual(self.app.num_partitions, self.app.dm.getNumPartitions()) self.assertTrue(isinstance(self.app.pt, PartitionTable)) self.assertEquals(self.app.ptid, self.app.dm.getPTID()) - self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 1) - self.checkAskPacket(conn, protocol.ASK_PRIMARY_MASTER) + self.checkUUIDSet(conn, uuid) + self.checkAskPrimaryMaster(conn) def test_09_handleAcceptNodeIdentification5(self): # no errors @@ -503,15 +483,12 @@ server: 127.0.0.1:10020 self.assertEqual(self.app.num_partitions, self.app.dm.getNumPartitions()) self.assertTrue(isinstance(self.app.pt, PartitionTable)) self.assertEquals(self.app.ptid, self.app.dm.getPTID()) + self.checkAskPrimaryMaster(conn) # uuid - self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 1) - call = conn.mockGetNamedCalls("setUUID")[0] - self.assertEquals(call.getParam(0), uuid) + self.checkUUIDSet(conn, uuid) self.assertEquals(self.app.trying_master_node.getUUID(), uuid) self.assertEquals(self.app.uuid, self.app.dm.getUUID()) self.assertEquals(self.app.uuid, your_uuid) - # packet - self.checkAskPacket(conn, ASK_PRIMARY_MASTER) def test_10_handleAnswerPrimaryMaster01(self): # server connection rejected @@ -554,8 +531,8 @@ server: 127.0.0.1:10020 self.assertTrue(isinstance(n, MasterNode)) self.assertEquals(n.getUUID(), new_master[2]) self.assertEquals(len(conn.mockGetNamedCalls('setHandler')), 0) - self.assertEquals(len(conn.mockGetNamedCalls('close')), 0) self.checkNoPacketSent(conn) + self.checkNotClosed(conn) def test_10_handleAnswerPrimaryMaster03(self): # invalid primary master uuid -> close connection @@ -574,8 +551,8 @@ server: 127.0.0.1:10020 self.assertEquals(self.app.primary_master_node, None) self.assertEquals(self.app.trying_master_node, None) self.assertEquals(len(conn.mockGetNamedCalls('setHandler')), 0) - self.assertEquals(len(conn.mockGetNamedCalls('close')), 1) self.checkNoPacketSent(conn) + self.checkClosed(conn) def test_10_handleAnswerPrimaryMaster04(self): # trying_master_node is not pmn -> close connection @@ -595,9 +572,9 @@ server: 127.0.0.1:10020 ) self.assertEquals(self.app.primary_master_node, pmn) self.assertEquals(len(conn.mockGetNamedCalls('setHandler')), 0) - self.assertEquals(len(conn.mockGetNamedCalls('close')), 1) self.assertEquals(self.app.trying_master_node, None) self.checkNoPacketSent(conn) + self.checkClosed(conn) def test_10_handleAnswerPrimaryMaster05(self): # trying_master_node is pmn -> set verification handler @@ -619,9 +596,9 @@ server: 127.0.0.1:10020 self.assertEquals(len(conn.mockGetNamedCalls('setHandler')), 1) call = conn.mockGetNamedCalls('setHandler')[0] self.assertTrue(isinstance(call.getParam(0), VerificationEventHandler)) - self.assertEquals(len(conn.mockGetNamedCalls('close')), 0) self.assertEquals(self.app.trying_master_node, pmn) self.checkNoPacketSent(conn) + self.checkNotClosed(conn) def test_10_handleAnswerPrimaryMaster06(self): # primary_uuid not known -> nothing happen @@ -640,8 +617,8 @@ server: 127.0.0.1:10020 self.assertEquals(self.app.primary_master_node, None) self.assertEquals(self.app.trying_master_node, None) self.assertEquals(len(conn.mockGetNamedCalls('setHandler')), 0) - self.assertEquals(len(conn.mockGetNamedCalls('close')), 0) self.checkNoPacketSent(conn) + self.checkNotClosed(conn) if __name__ == "__main__": unittest.main() diff --git a/neo/storage/tests/testStorageOperation.py b/neo/storage/tests/testStorageOperation.py index be7537c92b1c52e876235bb8142de4532f247bfa..9ac1af0f3538e1add37fbc9a5953eb6d36f8d3d7 100644 --- a/neo/storage/tests/testStorageOperation.py +++ b/neo/storage/tests/testStorageOperation.py @@ -39,14 +39,6 @@ NEO_SQL_DATABASE = 'test_storage_neo1' class StorageOperationTests(NeoTestBase): - # TODO: move this check to base class and rename as checkAnswerPacket - def checkPacket(self, conn, packet_type=ERROR): - self.assertEquals(len(conn.mockGetNamedCalls("answer")), 1) - call = conn.mockGetNamedCalls("answer")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEquals(packet.getType(), packet_type) - def checkHandleUnexpectedPacket(self, _call, _msg_type, _listening=True, **kwargs): conn = Mock({ "getAddress" : ("127.0.0.1", self.master_port), @@ -387,13 +379,9 @@ server: 127.0.0.1:10020 n = self.app.nm.getNodeByServer(('192.168.1.1', self.master_port)) self.assertNotEquals(n, None) self.assertEquals(n.getUUID(), uuid) - self.checkPacket(conn, packet_type=ACCEPT_NODE_IDENTIFICATION) - # uuid - self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 1) - call = conn.mockGetNamedCalls("setUUID")[0] - self.assertEquals(call.getParam(0), uuid) - # abort - self.assertEquals(len(conn.mockGetNamedCalls('abort')), 1) + self.checkAcceptNodeIdentification(conn) + self.checkUUIDSet(conn, uuid) + self.checkAborted(conn) def test_09_handleRequestNodeIdentification6(self): # not new & accepted @@ -416,14 +404,10 @@ server: 127.0.0.1:10020 name=self.app.name,) # no new node self.assertEquals(len(self.app.nm.getNodeList()), count) - self.checkPacket(conn, packet_type=ACCEPT_NODE_IDENTIFICATION) - # uuid - self.assertEquals(len(conn.mockGetNamedCalls("setUUID")), 1) - call = conn.mockGetNamedCalls("setUUID")[0] - self.assertEquals(call.getParam(0), self.uuid) self.assertEquals(mn.getUUID(), self.uuid) - # abort - self.assertEquals(len(conn.mockGetNamedCalls('abort')), 0) + self.checkAcceptNodeIdentification(conn) + self.checkUUIDSet(conn, uuid) + self.checkNotAborted(conn) def test_10_handleAcceptNodeIdentification1(self): # client connection not implemented @@ -605,7 +589,7 @@ server: 127.0.0.1:10020 conn = Mock({ }) packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION) self.operation.handleAskTransactionInformation(conn, packet, INVALID_TID) - self.checkPacket(conn, packet_type=ERROR) + self.checkErrorPacket(conn) def test_18_handleAskTransactionInformation2(self): # answer @@ -614,7 +598,7 @@ server: 127.0.0.1:10020 dm = Mock({ "getTransaction": (INVALID_TID, 'user', 'desc', '', ), }) self.app.dm = dm self.operation.handleAskTransactionInformation(conn, packet, INVALID_TID) - self.checkPacket(conn, packet_type=ANSWER_TRANSACTION_INFORMATION) + self.checkAnswerTransactionInformation(conn) def test_19_handleAskObjectPresent(self): # unexpected packet @@ -663,12 +647,12 @@ server: 127.0.0.1:10020 self.assertEquals(self.app.load_lock_dict[0], INVALID_TID) calls = self.app.dm.mockGetNamedCalls('storeTransaction') self.assertEquals(len(calls), 1) - self.checkPacket(conn, packet_type=NOTIFY_INFORMATION_LOCKED) + self.checkNotifyInformationLocked(conn, answered_packet=packet) # transaction not in transaction_dict -> KeyError transaction = Mock({ 'getObjectList': ((0, ), ), }) conn = Mock({ 'isServerConnection': False, }) self.operation.handleLockInformation(conn, packet, '\x01' * 8) - self.checkPacket(conn, packet_type=NOTIFY_INFORMATION_LOCKED) + self.checkNotifyInformationLocked(conn, answered_packet=packet) def test_23_handleUnlockInformation1(self): # reject server connection @@ -701,7 +685,7 @@ server: 127.0.0.1:10020 transaction = Mock({ 'getObjectList': ((0, ), ), }) conn = Mock({ 'isServerConnection': False, }) self.operation.handleLockInformation(conn, packet, '\x01' * 8) - self.checkPacket(conn, packet_type=NOTIFY_INFORMATION_LOCKED) + self.checkNotifyInformationLocked(conn, answered_packet=packet) def test_24_handleAskObject1(self): # delayed response @@ -734,7 +718,7 @@ server: 127.0.0.1:10020 self.assertEquals(calls[0].getParam(0), INVALID_OID) self.assertEquals(calls[0].getParam(1), None) self.assertEquals(calls[0].getParam(2), None) - self.checkPacket(conn, packet_type=ERROR) + self.checkErrorPacket(conn) def test_24_handleAskObject3(self): # object found => answer @@ -747,7 +731,7 @@ server: 127.0.0.1:10020 serial=INVALID_SERIAL, tid=INVALID_TID) self.assertEquals(len(self.app.event_queue), 0) - self.checkPacket(conn, packet_type=ANSWER_OBJECT) + self.checkAnswerObject(conn) def test_25_handleAskTIDs1(self): # invalid offsets => error @@ -773,7 +757,7 @@ server: 127.0.0.1:10020 self.assertEquals(calls[0].getParam(1), 1) self.assertEquals(calls[0].getParam(2), 1) self.assertEquals(calls[0].getParam(3), [1, ]) - self.checkPacket(conn, packet_type=ANSWER_TIDS) + self.checkAnswerTids(conn) def test_25_handleAskTIDs3(self): # invalid partition => answer usable partitions @@ -791,7 +775,7 @@ server: 127.0.0.1:10020 self.assertEquals(calls[0].getParam(1), 1) self.assertEquals(calls[0].getParam(2), 1) self.assertEquals(calls[0].getParam(3), [0, ]) - self.checkPacket(conn, packet_type=ANSWER_TIDS) + self.checkAnswerTids(conn) def test_26_handleAskObjectHistory1(self): # invalid offsets => error @@ -808,12 +792,12 @@ server: 127.0.0.1:10020 conn = Mock({}) self.app.dm = Mock({'getObjectHistory': None}) self.operation.handleAskObjectHistory(conn, packet, INVALID_OID, 1, 2) - self.checkPacket(conn, packet_type=ANSWER_OBJECT_HISTORY) + self.checkAnswerObjectHistory(conn) # second case: not empty history conn = Mock({}) self.app.dm = Mock({'getObjectHistory': [('', 0, ), ]}) self.operation.handleAskObjectHistory(conn, packet, INVALID_OID, 1, 2) - self.checkPacket(conn, packet_type=ANSWER_OBJECT_HISTORY) + self.checkAnswerObjectHistory(conn) def test_27_handleAskStoreTransaction1(self): # no uuid => abort @@ -840,7 +824,7 @@ server: 127.0.0.1:10020 self.assertNotEquals(t, None) self.assertTrue(isinstance(t, TransactionInformation)) self.assertEquals(t.getTransaction(), ((), '', '', '')) - self.checkPacket(conn, packet_type=ANSWER_STORE_TRANSACTION) + self.checkAnswerStoreTransaction(conn) def test_28_handleAskStoreObject1(self): # no uuid => abort @@ -892,7 +876,7 @@ server: 127.0.0.1:10020 self.app.store_lock_dict[INVALID_OID] = tid2 self.operation.handleAskStoreObject(conn, packet, INVALID_OID, INVALID_SERIAL, 0, 0, '', tid1) - self.checkPacket(conn, packet_type=ANSWER_STORE_OBJECT) + self.checkAnswerStoreObject(conn) self.assertEquals(self.app.store_lock_dict[INVALID_OID], tid2) # conflicting packet = conn.mockGetNamedCalls('answer')[0].getParam(0) @@ -906,7 +890,7 @@ server: 127.0.0.1:10020 self.assertEquals(self.app.store_lock_dict.get(INVALID_OID, None), None) self.operation.handleAskStoreObject(conn, packet, INVALID_OID, INVALID_SERIAL, 0, 0, '', INVALID_TID) - self.checkPacket(conn, packet_type=ANSWER_STORE_OBJECT) + self.checkAnswerStoreObject(conn) self.assertEquals(self.app.store_lock_dict.get(INVALID_OID, None), None) # conflicting packet = conn.mockGetNamedCalls('answer')[0].getParam(0) @@ -923,9 +907,8 @@ server: 127.0.0.1:10020 self.assertEquals(len(t.getObjectList()), 1) object = t.getObjectList()[0] self.assertEquals(object, (INVALID_OID, 0, 0, '')) - self.checkPacket(conn, packet_type=ANSWER_STORE_OBJECT) # no conflict - packet = conn.mockGetNamedCalls('answer')[0].getParam(0) + packet = self.checkAnswerStoreObject(conn) self.assertFalse(unpack('!B8s8s', packet._body)[0]) def test_29_handleAbortTransaction(self): @@ -1026,7 +1009,7 @@ server: 127.0.0.1:10020 self.assertEquals(calls[0].getParam(1), 1) self.assertEquals(calls[0].getParam(2), 1) self.assertEquals(calls[0].getParam(3), [1, ]) - self.checkPacket(conn, packet_type=ANSWER_OIDS) + self.checkAnswerOids(conn) def test_25_handleAskOIDs3(self): # invalid partition => answer usable partitions @@ -1044,7 +1027,7 @@ server: 127.0.0.1:10020 self.assertEquals(calls[0].getParam(1), 1) self.assertEquals(calls[0].getParam(2), 1) self.assertEquals(calls[0].getParam(3), [0, ]) - self.checkPacket(conn, packet_type=ANSWER_OIDS) + self.checkAnswerOids(conn) if __name__ == "__main__": diff --git a/neo/storage/tests/testStorageVerificationHandler.py b/neo/storage/tests/testStorageVerificationHandler.py index 31814e15561cd21dfec2794764be756c6009689d..279458424929892baaf1dead48b2d5661cfdebb3 100644 --- a/neo/storage/tests/testStorageVerificationHandler.py +++ b/neo/storage/tests/testStorageVerificationHandler.py @@ -229,12 +229,8 @@ server: 127.0.0.1:10020 node = self.app.nm.getNodeByServer(conn.getAddress()) self.assertEqual(node.getUUID(), uuid) self.assertEqual(node.getState(), RUNNING_STATE) - self.assertEquals(len(conn.mockGetNamedCalls("answer")), 1) - call = conn.mockGetNamedCalls("answer")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEquals(packet.getType(), ACCEPT_NODE_IDENTIFICATION) - self.assertEquals(len(conn.mockGetNamedCalls("abort")), 1) + self.checkAcceptNodeIdentification(conn) + self.checkAborted(conn) # notify a node declared as broken conn = Mock({"getUUID" : uuid, @@ -262,13 +258,8 @@ server: 127.0.0.1:10020 node = self.app.nm.getNodeByServer(conn.getAddress()) self.assertEqual(node.getUUID(), uuid) self.assertEqual(node.getState(), RUNNING_STATE) - self.assertEquals(len(conn.mockGetNamedCalls("answer")), 1) - call = conn.mockGetNamedCalls("answer")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEquals(packet.getType(), ACCEPT_NODE_IDENTIFICATION) - self.assertEquals(len(conn.mockGetNamedCalls("abort")), 1) - + self.checkAcceptNodeIdentification(conn) + self.checkAborted(conn) def test_06_handleAcceptNodeIdentification(self): uuid = self.getNewUUID() @@ -318,11 +309,7 @@ server: 127.0.0.1:10020 "getAddress" : ("127.0.0.1", self.client_port), "isServerConnection" : False}) self.verification.handleAskLastIDs(conn, packet) - call = conn.mockGetNamedCalls("answer")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEquals(packet.getType(), ANSWER_LAST_IDS) - oid, tid, ptid = packet.decode() + oid, tid, ptid = self.checkAnswerLastIDs(conn, decode=True) self.assertEqual(oid, INVALID_OID) self.assertEqual(tid, INVALID_TID) self.assertEqual(ptid, self.app.ptid) @@ -353,11 +340,8 @@ server: 127.0.0.1:10020 checksum, value) values (0, 4, 0, 0, '')""") self.app.dm.commit() self.verification.handleAskLastIDs(conn, packet) - call = conn.mockGetNamedCalls("answer")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEquals(packet.getType(), ANSWER_LAST_IDS) - oid, tid, ptid = packet.decode() + self.checkAnswerLastIDs(conn) + oid, tid, ptid = self.checkAnswerLastIDs(conn, decode=True) self.assertEqual(u64(oid), 5) self.assertEqual(u64(tid), 4) self.assertEqual(ptid, self.app.ptid) @@ -379,11 +363,7 @@ server: 127.0.0.1:10020 "getAddress" : ("127.0.0.1", self.client_port), "isServerConnection" : False}) self.verification.handleAskPartitionTable(conn, packet, [1,]) - call = conn.mockGetNamedCalls("answer")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEquals(packet.getType(), ANSWER_PARTITION_TABLE) - ptid, row_list = packet.decode() + ptid, row_list = self.checkAnswerPartitionTable(conn, decode=True) self.assertEqual(len(row_list), 1) offset, rows = row_list[0] self.assertEqual(offset, 1) @@ -397,11 +377,7 @@ server: 127.0.0.1:10020 "getAddress" : ("127.0.0.1", self.client_port), "isServerConnection" : False}) self.verification.handleAskPartitionTable(conn, packet, [1,]) - call = conn.mockGetNamedCalls("answer")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEquals(packet.getType(), ANSWER_PARTITION_TABLE) - ptid, row_list = packet.decode() + ptid, row_list = self.checkAnswerPartitionTable(conn, decode=True) self.assertEqual(len(row_list), 1) offset, rows = row_list[0] self.assertEqual(offset, 1) @@ -527,11 +503,7 @@ server: 127.0.0.1:10020 'isServerConnection': False}) packet = Packet(msg_type=ASK_UNFINISHED_TRANSACTIONS) self.verification.handleAskUnfinishedTransactions(conn, packet) - call = conn.mockGetNamedCalls("answer")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEquals(packet.getType(), ANSWER_UNFINISHED_TRANSACTIONS) - tid_list = packet.decode()[0] + (tid_list, ) = self.checkAnswerUnfinishedTransactions(conn, decode=True) self.assertEqual(len(tid_list), 0) # client connection with some data @@ -543,11 +515,7 @@ server: 127.0.0.1:10020 'isServerConnection': False}) packet = Packet(msg_type=ASK_UNFINISHED_TRANSACTIONS) self.verification.handleAskUnfinishedTransactions(conn, packet) - call = conn.mockGetNamedCalls("answer")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEquals(packet.getType(), ANSWER_UNFINISHED_TRANSACTIONS) - tid_list = packet.decode()[0] + (tid_list, ) = self.checkAnswerUnfinishedTransactions(conn, decode=True) self.assertEqual(len(tid_list), 1) self.assertEqual(u64(tid_list[0]), 4) @@ -557,22 +525,14 @@ server: 127.0.0.1:10020 'isServerConnection': True }) packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION) self.verification.handleAskTransactionInformation(conn, packet, p64(1)) - call = conn.mockGetNamedCalls("answer")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEquals(packet.getType(), ERROR) - code, message = packet.decode() + code, message = self.checkErrorPacket(conn, decode=True) self.assertEqual(code, TID_NOT_FOUND_CODE) # ask from client conn with no data conn = Mock({ "getAddress" : ("127.0.0.1", self.master_port), 'isServerConnection': False }) packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION) self.verification.handleAskTransactionInformation(conn, packet, p64(1)) - call = conn.mockGetNamedCalls("answer")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEquals(packet.getType(), ERROR) - code, message = packet.decode() + code, message = self.checkErrorPacket(conn, decode=True) self.assertEqual(code, TID_NOT_FOUND_CODE) # input some tmp data and ask from client, must find both transaction @@ -587,11 +547,7 @@ server: 127.0.0.1:10020 'isServerConnection': False }) packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION) self.verification.handleAskTransactionInformation(conn, packet, p64(1)) - call = conn.mockGetNamedCalls("answer")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEquals(packet.getType(), ANSWER_TRANSACTION_INFORMATION) - tid, user, desc, ext, oid_list = packet.decode() + tid, user, desc, ext, oid_list = self.checkAnswerTransactionInformation(conn, decode=True) self.assertEqual(u64(tid), 1) self.assertEqual(user, 'u2') self.assertEqual(desc, 'd2') @@ -603,11 +559,7 @@ server: 127.0.0.1:10020 'isServerConnection': False }) packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION) self.verification.handleAskTransactionInformation(conn, packet, p64(3)) - call = conn.mockGetNamedCalls("answer")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEquals(packet.getType(), ANSWER_TRANSACTION_INFORMATION) - tid, user, desc, ext, oid_list = packet.decode() + tid, user, desc, ext, oid_list = self.checkAnswerTransactionInformation(conn, decode=True) self.assertEqual(u64(tid), 3) self.assertEqual(user, 'u1') self.assertEqual(desc, 'd1') @@ -621,11 +573,7 @@ server: 127.0.0.1:10020 # find the one in trans packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION) self.verification.handleAskTransactionInformation(conn, packet, p64(1)) - call = conn.mockGetNamedCalls("answer")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEquals(packet.getType(), ANSWER_TRANSACTION_INFORMATION) - tid, user, desc, ext, oid_list = packet.decode() + tid, user, desc, ext, oid_list = self.checkAnswerTransactionInformation(conn, decode=True) self.assertEqual(u64(tid), 1) self.assertEqual(user, 'u2') self.assertEqual(desc, 'd2') @@ -637,11 +585,7 @@ server: 127.0.0.1:10020 'isServerConnection': True }) packet = Packet(msg_type=ASK_TRANSACTION_INFORMATION) self.verification.handleAskTransactionInformation(conn, packet, p64(3)) - call = conn.mockGetNamedCalls("answer")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEquals(packet.getType(), ERROR) - code, message = packet.decode() + code, message = self.checkErrorPacket(conn, decode=True) self.assertEqual(code, TID_NOT_FOUND_CODE) def test_15_handleAskObjectPresent(self): @@ -655,11 +599,7 @@ server: 127.0.0.1:10020 'isServerConnection': False}) packet = Packet(msg_type=ASK_OBJECT_PRESENT) self.verification.handleAskObjectPresent(conn, packet, p64(1), p64(2)) - call = conn.mockGetNamedCalls("answer")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEquals(packet.getType(), ERROR) - code, message = packet.decode() + code, message = self.checkErrorPacket(conn, decode=True) self.assertEqual(code, OID_NOT_FOUND_CODE) # client connection with some data @@ -671,11 +611,7 @@ server: 127.0.0.1:10020 'isServerConnection': False}) packet = Packet(msg_type=ASK_OBJECT_PRESENT) self.verification.handleAskObjectPresent(conn, packet, p64(1), p64(2)) - call = conn.mockGetNamedCalls("answer")[0] - packet = call.getParam(0) - self.assertTrue(isinstance(packet, Packet)) - self.assertEquals(packet.getType(), ANSWER_OBJECT_PRESENT) - oid, tid = packet.decode() + oid, tid = self.checkAnswerObjectPresent(conn, decode=True) self.assertEqual(u64(tid), 2) self.assertEqual(u64(oid), 1) diff --git a/neo/tests/base.py b/neo/tests/base.py index c33fecd0adbeea6175462270b16e69dfacd92001..2d756588daa53a3feefd69cdab10356fa9cc39b5 100644 --- a/neo/tests/base.py +++ b/neo/tests/base.py @@ -22,7 +22,7 @@ from neo import protocol class NeoTestBase(unittest.TestCase): """ Base class for neo tests, implements common checks """ - # XXX: according to changes with namespaced UUIDs, it whould be better to + # XXX: according to changes with namespaced UUIDs, it would be better to # implement get<NodeType>UUID() methods def getNewUUID(self): """ Return a valid UUID """ @@ -59,25 +59,65 @@ class NeoTestBase(unittest.TestCase): """ Check if the NotReadyError exception wxas raised """ self.assertRaises(protocol.NotReadyError, method, *args, **kwargs) + def checkAborted(self, conn): + """ Ensure the connection was aborted """ + self.assertEquals(len(conn.mockGetNamedCalls('abort')), 1) + + def checkNotAborted(self, conn): + """ Ensure the connection was not aborted """ + self.assertEquals(len(conn.mockGetNamedCalls('abort')), 0) + + def checkClosed(self, conn): + """ Ensure the connection was closed """ + self.assertEquals(len(conn.mockGetNamedCalls('close')), 1) + + def checkNotClosed(self, conn): + """ Ensure the connection was not closed """ + self.assertEquals(len(conn.mockGetNamedCalls('close')), 0) + def checkNoPacketSent(self, conn): - # no packet should be sent + """ check if no packet were sent """ self.assertEquals(len(conn.mockGetNamedCalls('notify')), 0) self.assertEquals(len(conn.mockGetNamedCalls('answer')), 0) self.assertEquals(len(conn.mockGetNamedCalls('ask')), 0) + def checkNoUUIDSet(self, conn): + """ ensure no UUID was set on the connection """ + self.assertEquals(len(conn.mockGetNamedCalls('setUUID')), 0) + + def checkUUIDSet(self, conn, uuid=None): + """ ensure no UUID was set on the connection """ + calls = conn.mockGetNamedCalls('setUUID') + self.assertEquals(len(calls), 1) + if uuid is not None: + self.assertEquals(calls[0].getParam(0), uuid) + # in check(Ask|Answer|Notify)Packet we return the packet so it can be used # in tests if more accurates checks are required - def checkAskPacket(self, conn, packet_type): + def checkErrorPacket(self, conn, decode=False): + """ Check if an error packet was answered """ + calls = conn.mockGetNamedCalls("answer") + self.assertEquals(len(calls), 1) + packet = calls[0].getParam(0) + self.assertTrue(isinstance(packet, protocol.Packet)) + self.assertEquals(packet.getType(), protocol.ERROR) + if decode: + return protocol.decode_table[packet.getType()](packet._body) + return packet + + def checkAskPacket(self, conn, packet_type, decode=False): """ Check if an ask-packet with the right type is sent """ calls = conn.mockGetNamedCalls('ask') self.assertEquals(len(calls), 1) packet = calls[0].getParam(0) self.assertTrue(isinstance(packet, protocol.Packet)) self.assertEquals(packet.getType(), packet_type) + if decode: + return protocol.decode_table[packet.getType()](packet._body) return packet - def checkAnswerPacket(self, conn, packet_type, answered_packet=None): + def checkAnswerPacket(self, conn, packet_type, answered_packet=None, decode=False): """ Check if an answer-packet with the right type is sent """ calls = conn.mockGetNamedCalls('answer') self.assertEquals(len(calls), 1) @@ -88,61 +128,92 @@ class NeoTestBase(unittest.TestCase): a_packet = calls[0].getParam(1) self.assertEquals(a_packet, answered_packet) self.assertEquals(a_packet.getId(), answered_packet.getId()) + if decode: + return protocol.decode_table[packet.getType()](packet._body) return packet - def checkNotifyPacket(self, conn, packet_type, packet_number=0): + def checkNotifyPacket(self, conn, packet_type, packet_number=0, decode=False): """ Check if a notify-packet with the right type is sent """ calls = conn.mockGetNamedCalls('notify') self.assertTrue(len(calls) > packet_number) packet = calls[packet_number].getParam(0) self.assertTrue(isinstance(packet, protocol.Packet)) self.assertEquals(packet.getType(), packet_type) + if decode: + return protocol.decode_table[packet.getType()](packet._body) return packet - def checkNotifyNodeInformation(self, conn, packet_number=0): - """ Check Notify Node Information message has been send""" - return self.checkNotifyPacket(conn, protocol.NOTIFY_NODE_INFORMATION, - packet_number) - - def checkSendPartitionTable(self, conn, packet_number=0): - """ Check partition table has been send""" - return self.checkNotifyPacket(conn, protocol.SEND_PARTITION_TABLE, - packet_number) - - def checkStartOperation(self, conn, packet_number=0): - """ Check start operation message has been send""" - return self.checkNotifyPacket(conn, protocol.START_OPERATION, - packet_number) - - def checkNotifyTransactionFinished(self, conn, packet_number=0): - """ Check notifyTransactionFinished message has been send""" - return self.checkNotifyPacket(conn, protocol.NOTIFY_TRANSACTION_FINISHED, - packet_number) - - def checkLockInformation(self, conn): - """ Check lockInformation message has been send""" - return self.checkAskPacket(conn, protocol.LOCK_INFORMATION) - - def checkUnlockInformation(self, conn): - """ Check unlockInformation message has been send""" - return self.checkAskPacket(conn, protocol.UNLOCK_INFORMATION) - - def checkAcceptNodeIdentification(self, conn, answered_packet=None): - """ Check Accept Node Identification has been answered """ - return self.checkAnswerPacket(conn, protocol.ACCEPT_NODE_IDENTIFICATION, - answered_packet) - - def checkAnswerPrimaryMaster(self, conn, answered_packet=None): - """ Check Answer primaty master message has been send""" - return self.checkAnswerPacket(conn, protocol.ANSWER_PRIMARY_MASTER, - answered_packet) - - def checkAnswerLastIDs(self, conn, packet_number=0): - """ Check answerLastIDs message has been send""" - return self.checkAnswerPacket(conn, protocol.ANSWER_LAST_IDS) - - def checkAnswerUnfinishedTransactions(self, conn, packet_number=0): - """ Check answerUnfinishedTransactions message has been send""" - return self.checkAnswerPacket(conn, - protocol.ANSWER_UNFINISHED_TRANSACTIONS) + def checkNotifyNodeInformation(self, conn, **kw): + return self.checkNotifyPacket(conn, protocol.NOTIFY_NODE_INFORMATION, **kw) + + def checkSendPartitionTable(self, conn, **kw): + return self.checkNotifyPacket(conn, protocol.SEND_PARTITION_TABLE, **kw) + + def checkStartOperation(self, conn, **kw): + return self.checkNotifyPacket(conn, protocol.START_OPERATION, **kw) + + def checkNotifyTransactionFinished(self, conn, **kw): + return self.checkNotifyPacket(conn, protocol.NOTIFY_TRANSACTION_FINISHED, **kw) + + def checkNotifyInformationLocked(self, conn, **kw): + return self.checkAnswerPacket(conn, protocol.NOTIFY_INFORMATION_LOCKED, **kw) + + def checkLockInformation(self, conn, **kw): + return self.checkAskPacket(conn, protocol.LOCK_INFORMATION, **kw) + + def checkUnlockInformation(self, conn, **kw): + return self.checkAskPacket(conn, protocol.UNLOCK_INFORMATION, **kw) + + def checkRequestNodeIdentification(self, conn, **kw): + return self.checkAskPacket(conn, protocol.REQUEST_NODE_IDENTIFICATION, **kw) + + def checkAskPrimaryMaster(self, conn, **kw): + return self.checkAskPacket(conn, protocol.ASK_PRIMARY_MASTER) + + def checkAskUnfinishedTransactions(self, conn, **kw): + return self.checkAskPacket(conn, protocol.ASK_UNFINISHED_TRANSACTIONS) + + def checkAskTransactionInformation(self, conn, **kw): + return self.checkAskPacket(conn, protocol.ASK_TRANSACTION_INFORMATION, **kw) + + def checkAskObjectPresent(self, conn, **kw): + return self.checkAskPacket(conn, protocol.ASK_OBJECT_PRESENT, **kw) + + def checkAcceptNodeIdentification(self, conn, **kw): + return self.checkAnswerPacket(conn, protocol.ACCEPT_NODE_IDENTIFICATION, **kw) + + def checkAnswerPrimaryMaster(self, conn, **kw): + return self.checkAnswerPacket(conn, protocol.ANSWER_PRIMARY_MASTER, **kw) + + def checkAnswerLastIDs(self, conn, **kw): + return self.checkAnswerPacket(conn, protocol.ANSWER_LAST_IDS, **kw) + + def checkAnswerUnfinishedTransactions(self, conn, **kw): + return self.checkAnswerPacket(conn, protocol.ANSWER_UNFINISHED_TRANSACTIONS, **kw) + + def checkAnswerObject(self, conn, **kw): + return self.checkAnswerPacket(conn, protocol.ANSWER_OBJECT, **kw) + + def checkAnswerTransactionInformation(self, conn, **kw): + return self.checkAnswerPacket(conn, protocol.ANSWER_TRANSACTION_INFORMATION, **kw) + + def checkAnswerTids(self, conn, **kw): + return self.checkAnswerPacket(conn, protocol.ANSWER_TIDS, **kw) + + def checkAnswerObjectHistory(self, conn, **kw): + return self.checkAnswerPacket(conn, protocol.ANSWER_OBJECT_HISTORY, **kw) + + def checkAnswerStoreTransaction(self, conn, **kw): + return self.checkAnswerPacket(conn, protocol.ANSWER_STORE_TRANSACTION, **kw) + + def checkAnswerStoreObject(self, conn, **kw): + return self.checkAnswerPacket(conn, protocol.ANSWER_STORE_OBJECT, **kw) + + def checkAnswerOids(self, conn, **kw): + return self.checkAnswerPacket(conn, protocol.ANSWER_OIDS, **kw) + + def checkAnswerPartitionTable(self, conn, **kw): + return self.checkAnswerPacket(conn, protocol.ANSWER_PARTITION_TABLE, **kw) + def checkAnswerObjectPresent(self, conn, **kw): + return self.checkAnswerPacket(conn, protocol.ANSWER_OBJECT_PRESENT, **kw)