From 76b17bafe008269006d5edbeb57f9008740ed45d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Wisniewski?= <gregory@nexedi.com> Date: Wed, 5 May 2010 12:46:45 +0000 Subject: [PATCH] Use getFakeConnection git-svn-id: https://svn.erp5.org/repos/neo/trunk@2065 71dcc9de-d417-0410-9af5-da40c76e7ee4 --- neo/tests/__init__.py | 15 ++++++++--- neo/tests/client/testMasterHandler.py | 7 +++-- neo/tests/client/testStorageHandler.py | 6 ++--- neo/tests/master/testElectionHandler.py | 21 +++++---------- neo/tests/master/testMasterApp.py | 6 ++--- neo/tests/storage/testClientHandler.py | 30 ++++++++++------------ neo/tests/storage/testMasterHandler.py | 6 ++--- neo/tests/storage/testStorageHandler.py | 34 ++++++++++++------------- neo/tests/testBootstrap.py | 6 ++--- neo/tests/testEvent.py | 22 ++++++++-------- 10 files changed, 74 insertions(+), 79 deletions(-) diff --git a/neo/tests/__init__.py b/neo/tests/__init__.py index 3dea1834..c4460541 100644 --- a/neo/tests/__init__.py +++ b/neo/tests/__init__.py @@ -149,14 +149,23 @@ class NeoTestBase(unittest.TestCase): uuids = self.getNewUUID(), self.getNewUUID() return min(uuids), max(uuids) + def getFakeConnector(self, descriptor=None): + return Mock({ + '__repr__': 'FakeConnector', + 'getDescriptor': descriptor, + }) + def getFakeConnection(self, uuid=None, address=('127.0.0.1', 10000), - is_server=False): + is_server=False, connector=None): + if connector is None: + connector = self.getFakeConnector() return Mock({ 'getUUID': uuid, 'getAddress': address, - 'isServer': is_server, - '__repr__': 'FakeConnection', + 'isServer': is_server, + '__repr__': 'FakeConnection', '__nonzero__': 0, + 'getConnector': connector, }) def checkProtocolErrorRaised(self, method, *args, **kwargs): diff --git a/neo/tests/client/testMasterHandler.py b/neo/tests/client/testMasterHandler.py index 6a42e17b..c61fb198 100644 --- a/neo/tests/client/testMasterHandler.py +++ b/neo/tests/client/testMasterHandler.py @@ -33,7 +33,7 @@ class MasterHandlerTests(NeoTestBase): pass def getConnection(self): - return Mock({'getAddress': ('fake-conn', 0)}) + return self.getFakeConnection() class MasterBootstrapHandlerTests(MasterHandlerTests): @@ -186,16 +186,19 @@ class MasterNotificationsHandlerTests(MasterHandlerTests): (NodeTypes.STORAGE, addr, self.getNewUUID(), NodeStates.DOWN), ] # XXX: it might be better to test with real node & node manager - conn1, conn2 = Mock({'__repr__': 'conn1'}), Mock({'__repr__': 'conn2'}) + conn1 = self.getFakeConnection() + conn2 = self.getFakeConnection() node1 = Mock({ 'getConnection': conn1, '__nonzero__': 1, 'isConnected': True, + '__repr__': 'Fake Node', }) node2 = Mock({ 'getConnection': conn2, '__nonzero__': 1, 'isConnected': True, + '__repr__': 'Fake Node', }) self.app.nm = Mock({'getByUUID': ReturnValues(node1, node2)}) self.app.cp = Mock() diff --git a/neo/tests/client/testStorageHandler.py b/neo/tests/client/testStorageHandler.py index 1ef8dc81..6a6f4280 100644 --- a/neo/tests/client/testStorageHandler.py +++ b/neo/tests/client/testStorageHandler.py @@ -32,7 +32,7 @@ class StorageBootstrapHandlerTests(NeoTestBase): self.handler = StorageBootstrapHandler(self.app) def getConnection(self): - return Mock({'getAddress': ('fake-conn', 0)}) + return self.getFakeConnection() def test_notReady(self): conn = self.getConnection() @@ -70,7 +70,7 @@ class StorageAnswerHandlerTests(NeoTestBase): self.handler = StorageAnswersHandler(self.app) def getConnection(self): - return Mock({'getAddress': ('fake-conn', 0)}) + return self.getFakeConnection() def test_answerObject(self): conn = self.getConnection() @@ -229,7 +229,7 @@ class StorageAnswerHandlerTests(NeoTestBase): tid1 = self.getNextTID() tid2 = self.getNextTID(tid1) tid_list = [tid1, tid2] - conn = Mock({'getUUID': uuid}) + conn = self.getFakeConnection(uuid=uuid) self.app.local_var.node_tids = {} self.handler.answerTIDs(conn, tid_list) self.assertTrue(uuid in self.app.local_var.node_tids) diff --git a/neo/tests/master/testElectionHandler.py b/neo/tests/master/testElectionHandler.py index 3400175c..b6fbdcb3 100644 --- a/neo/tests/master/testElectionHandler.py +++ b/neo/tests/master/testElectionHandler.py @@ -222,11 +222,10 @@ class MasterServerElectionTests(NeoTestBase): if uuid is True: uuid = self.getNewUUID() node.setUUID(uuid) - conn = Mock({ - "getUUID": node.getUUID(), - "getAddress": node.getAddress(), - "getConnector": Mock(), - }) + conn = self.getFakeConnection( + uuid=node.getUUID(), + address=node.getAddress(), + ) return (node, conn) @@ -286,22 +285,14 @@ class MasterServerElectionTests(NeoTestBase): def __getClient(self): uuid = self.getNewUUID() - conn = Mock({ - 'getUUID': uuid, - 'getAddress': self.client_address, - 'getConnector': Mock(), - }) + conn = self.getFakeConnection(uuid=uuid, address=self.client_address) self.app.nm.createClient(uuid=uuid, address=self.client_address) return conn def __getMaster(self, port=1000, register=True): uuid = self.getNewUUID() address = ('127.0.0.1', port) - conn = Mock({ - 'getUUID': uuid, - 'getAddress': address, - 'getConnector': Mock(), - }) + conn = self.getFakeConnection(uuid=uuid, address=address) if register: self.app.nm.createMaster(uuid=uuid, address=address) return conn diff --git a/neo/tests/master/testMasterApp.py b/neo/tests/master/testMasterApp.py index 20e1616d..551672ff 100644 --- a/neo/tests/master/testMasterApp.py +++ b/neo/tests/master/testMasterApp.py @@ -56,9 +56,9 @@ class MasterAppTests(NeoTestBase): client_uuid = self.getNewUUID() client = self.app.nm.createClient(uuid=client_uuid) # create conn and patch em - master_conn = Mock() - storage_conn = Mock() - client_conn = Mock() + master_conn = self.getFakeConnection() + storage_conn = self.getFakeConnection() + client_conn = self.getFakeConnection() master.setConnection(master_conn) storage.setConnection(storage_conn) client.setConnection(client_conn) diff --git a/neo/tests/storage/testClientHandler.py b/neo/tests/storage/testClientHandler.py index dc03161e..a60806e2 100644 --- a/neo/tests/storage/testClientHandler.py +++ b/neo/tests/storage/testClientHandler.py @@ -29,10 +29,8 @@ from neo.protocol import Packets class StorageClientHandlerTests(NeoTestBase): def checkHandleUnexpectedPacket(self, _call, _msg_type, _listening=True, **kwargs): - conn = Mock({ - "getAddress" : ("127.0.0.1", self.master_port), - "isServer": _listening, - }) + conn = self.getFakeConnection(address=("127.0.0.1", self.master_port), + is_server=_listening) # hook self.operation.peerBroken = lambda c: c.peerBrokendCalled() self.checkUnexpectedPacketRaised(_call, conn=conn, **kwargs) @@ -60,7 +58,7 @@ class StorageClientHandlerTests(NeoTestBase): NeoTestBase.tearDown(self) def _getConnection(self, uuid=None): - return Mock({'getUUID': uuid, 'getAddress': ('127.0.0.1', 1000)}) + return self.getFakeConnection(uuid=uuid, address=('127.0.0.1', 1000)) def _checkTransactionsAborted(self, uuid): calls = self.app.tm.mockGetNamedCalls('abortFor') @@ -87,13 +85,13 @@ class StorageClientHandlerTests(NeoTestBase): def test_18_askTransactionInformation1(self): # transaction does not exists - conn = Mock({ }) + conn = self._getConnection() self.operation.askTransactionInformation(conn, INVALID_TID) self.checkErrorPacket(conn) def test_18_askTransactionInformation2(self): # answer - conn = Mock({ }) + conn = self._getConnection() dm = Mock({ "getTransaction": (INVALID_TID, 'user', 'desc', '', False), }) self.app.dm = dm self.operation.askTransactionInformation(conn, INVALID_TID) @@ -101,7 +99,7 @@ class StorageClientHandlerTests(NeoTestBase): def test_24_askObject1(self): # delayed response - conn = Mock({}) + conn = self._getConnection() self.app.dm = Mock() self.app.tm = Mock({'loadLocked': True}) self.app.load_lock_dict[INVALID_OID] = object() @@ -115,7 +113,7 @@ class StorageClientHandlerTests(NeoTestBase): def test_24_askObject2(self): # invalid serial / tid / packet not found self.app.dm = Mock({'getObject': None}) - conn = Mock({}) + conn = self._getConnection() self.assertEquals(len(self.app.event_queue), 0) self.operation.askObject(conn, oid=INVALID_OID, serial=INVALID_SERIAL, tid=INVALID_TID) @@ -128,7 +126,7 @@ class StorageClientHandlerTests(NeoTestBase): def test_24_askObject3(self): # object found => answer self.app.dm = Mock({'getObject': ('', '', 0, 0, '', None)}) - conn = Mock({}) + conn = self._getConnection() self.assertEquals(len(self.app.event_queue), 0) self.operation.askObject(conn, oid=INVALID_OID, serial=INVALID_SERIAL, tid=INVALID_TID) @@ -140,14 +138,14 @@ class StorageClientHandlerTests(NeoTestBase): app = self.app app.pt = Mock() app.dm = Mock() - conn = Mock({}) + conn = self._getConnection() self.checkProtocolErrorRaised(self.operation.askTIDs, conn, 1, 1, None) self.assertEquals(len(app.pt.mockGetNamedCalls('getCellList')), 0) self.assertEquals(len(app.dm.mockGetNamedCalls('getTIDList')), 0) def test_25_askTIDs2(self): # well case => answer - conn = Mock({}) + conn = self._getConnection() self.app.pt = Mock({'getPartitions': 1}) self.app.dm = Mock({'getTIDList': (INVALID_TID, )}) self.operation.askTIDs(conn, 1, 2, 1) @@ -158,7 +156,7 @@ class StorageClientHandlerTests(NeoTestBase): def test_25_askTIDs3(self): # invalid partition => answer usable partitions - conn = Mock({}) + conn = self._getConnection() cell = Mock({'getUUID':self.app.uuid}) self.app.dm = Mock({'getTIDList': (INVALID_TID, )}) self.app.pt = Mock({ @@ -177,19 +175,19 @@ class StorageClientHandlerTests(NeoTestBase): # invalid offsets => error app = self.app app.dm = Mock() - conn = Mock({}) + conn = self._getConnection() self.checkProtocolErrorRaised(self.operation.askObjectHistory, conn, 1, 1, None) self.assertEquals(len(app.dm.mockGetNamedCalls('getObjectHistory')), 0) def test_26_askObjectHistory2(self): # first case: empty history - conn = Mock({}) + conn = self._getConnection() self.app.dm = Mock({'getObjectHistory': None}) self.operation.askObjectHistory(conn, INVALID_OID, 1, 2) self.checkAnswerObjectHistory(conn) # second case: not empty history - conn = Mock({}) + conn = self._getConnection() self.app.dm = Mock({'getObjectHistory': [('', 0, ), ]}) self.operation.askObjectHistory(conn, INVALID_OID, 1, 2) self.checkAnswerObjectHistory(conn) diff --git a/neo/tests/storage/testMasterHandler.py b/neo/tests/storage/testMasterHandler.py index 0122238d..7b4e9e34 100644 --- a/neo/tests/storage/testMasterHandler.py +++ b/neo/tests/storage/testMasterHandler.py @@ -122,7 +122,7 @@ class StorageMasterHandlerTests(NeoTestBase): def test_16_stopOperation1(self): # OperationFailure - conn = Mock({ 'isServer': False }) + conn = self.getFakeConnection(is_server=False) self.assertRaises(OperationFailure, self.operation.stopOperation, conn) def _getConnection(self): @@ -169,7 +169,7 @@ class StorageMasterHandlerTests(NeoTestBase): def test_30_answerLastIDs(self): # set critical TID on replicator - conn = Mock() + conn = self.getFakeConnection() self.app.replicator = Mock() self.operation.answerLastIDs( conn=conn, @@ -183,7 +183,7 @@ class StorageMasterHandlerTests(NeoTestBase): def test_31_answerUnfinishedTransactions(self): # set unfinished TID on replicator - conn = Mock() + conn = self.getFakeConnection() self.app.replicator = Mock() self.operation.answerUnfinishedTransactions( conn=conn, diff --git a/neo/tests/storage/testStorageHandler.py b/neo/tests/storage/testStorageHandler.py index 87c083ba..419fe514 100644 --- a/neo/tests/storage/testStorageHandler.py +++ b/neo/tests/storage/testStorageHandler.py @@ -27,10 +27,8 @@ from neo.protocol import INVALID_TID, INVALID_OID, INVALID_SERIAL class StorageStorageHandlerTests(NeoTestBase): def checkHandleUnexpectedPacket(self, _call, _msg_type, _listening=True, **kwargs): - conn = Mock({ - "getAddress" : ("127.0.0.1", self.master_port), - "isServer": _listening, - }) + conn = self.getFakeConnection(address=("127.0.0.1", self.master_port), + is_server=_listening) # hook self.operation.peerBroken = lambda c: c.peerBrokendCalled() self.checkUnexpectedPacketRaised(_call, conn=conn, **kwargs) @@ -58,13 +56,13 @@ class StorageStorageHandlerTests(NeoTestBase): def test_18_askTransactionInformation1(self): # transaction does not exists - conn = Mock({ }) + conn = self.getFakeConnection() self.operation.askTransactionInformation(conn, INVALID_TID) self.checkErrorPacket(conn) def test_18_askTransactionInformation2(self): # answer - conn = Mock({ }) + conn = self.getFakeConnection() dm = Mock({"getTransaction": (INVALID_TID, 'user', 'desc', '', False), }) self.app.dm = dm self.operation.askTransactionInformation(conn, INVALID_TID) @@ -72,7 +70,7 @@ class StorageStorageHandlerTests(NeoTestBase): def test_24_askObject1(self): # delayed response - conn = Mock({}) + conn = self.getFakeConnection() self.app.dm = Mock() self.app.tm = Mock({'loadLocked': True}) self.app.load_lock_dict[INVALID_OID] = object() @@ -86,7 +84,7 @@ class StorageStorageHandlerTests(NeoTestBase): def test_24_askObject2(self): # invalid serial / tid / packet not found self.app.dm = Mock({'getObject': None}) - conn = Mock({}) + conn = self.getFakeConnection() self.assertEquals(len(self.app.event_queue), 0) self.operation.askObject(conn, oid=INVALID_OID, serial=INVALID_SERIAL, tid=INVALID_TID) @@ -100,7 +98,7 @@ class StorageStorageHandlerTests(NeoTestBase): def test_24_askObject3(self): # object found => answer self.app.dm = Mock({'getObject': ('', '', 0, 0, '', None)}) - conn = Mock({}) + conn = self.getFakeConnection() self.assertEquals(len(self.app.event_queue), 0) self.operation.askObject(conn, oid=INVALID_OID, serial=INVALID_SERIAL, tid=INVALID_TID) @@ -112,14 +110,14 @@ class StorageStorageHandlerTests(NeoTestBase): app = self.app app.pt = Mock() app.dm = Mock() - conn = Mock({}) + conn = self.getFakeConnection() self.checkProtocolErrorRaised(self.operation.askTIDs, conn, 1, 1, None) self.assertEquals(len(app.pt.mockGetNamedCalls('getCellList')), 0) self.assertEquals(len(app.dm.mockGetNamedCalls('getReplicationTIDList')), 0) def test_25_askTIDs2(self): # well case => answer - conn = Mock({}) + conn = self.getFakeConnection() self.app.dm = Mock({'getReplicationTIDList': (INVALID_TID, )}) self.app.pt = Mock({'getPartitions': 1}) self.operation.askTIDs(conn, 1, 2, 1) @@ -130,7 +128,7 @@ class StorageStorageHandlerTests(NeoTestBase): def test_25_askTIDs3(self): # invalid partition => answer usable partitions - conn = Mock({}) + conn = self.getFakeConnection() cell = Mock({'getUUID':self.app.uuid}) self.app.dm = Mock({'getReplicationTIDList': (INVALID_TID, )}) self.app.pt = Mock({ @@ -149,19 +147,19 @@ class StorageStorageHandlerTests(NeoTestBase): # invalid offsets => error app = self.app app.dm = Mock() - conn = Mock({}) + conn = self.getFakeConnection() self.checkProtocolErrorRaised(self.operation.askObjectHistory, conn, 1, 1, None) self.assertEquals(len(app.dm.mockGetNamedCalls('getObjectHistory')), 0) def test_26_askObjectHistory2(self): # first case: empty history - conn = Mock({}) + conn = self.getFakeConnection() self.app.dm = Mock({'getObjectHistory': None}) self.operation.askObjectHistory(conn, INVALID_OID, 1, 2) self.checkAnswerObjectHistory(conn) # second case: not empty history - conn = Mock({}) + conn = self.getFakeConnection() self.app.dm = Mock({'getObjectHistory': [('', 0, ), ]}) self.operation.askObjectHistory(conn, INVALID_OID, 1, 2) self.checkAnswerObjectHistory(conn) @@ -171,14 +169,14 @@ class StorageStorageHandlerTests(NeoTestBase): app = self.app app.pt = Mock() app.dm = Mock() - conn = Mock({}) + conn = self.getFakeConnection() self.checkProtocolErrorRaised(self.operation.askOIDs, conn, 1, 1, None) self.assertEquals(len(app.pt.mockGetNamedCalls('getCellList')), 0) self.assertEquals(len(app.dm.mockGetNamedCalls('getOIDList')), 0) def test_25_askOIDs2(self): # well case > answer OIDs - conn = Mock({}) + conn = self.getFakeConnection() self.app.pt = Mock({'getPartitions': 1}) self.app.dm = Mock({'getOIDList': (INVALID_OID, )}) self.operation.askOIDs(conn, 1, 2, 1) @@ -189,7 +187,7 @@ class StorageStorageHandlerTests(NeoTestBase): def test_25_askOIDs3(self): # invalid partition => answer usable partitions - conn = Mock({}) + conn = self.getFakeConnection() cell = Mock({'getUUID':self.app.uuid}) self.app.dm = Mock({'getOIDList': (INVALID_OID, )}) self.app.pt = Mock({ diff --git a/neo/tests/testBootstrap.py b/neo/tests/testBootstrap.py index 6c638908..878ca227 100644 --- a/neo/tests/testBootstrap.py +++ b/neo/tests/testBootstrap.py @@ -45,15 +45,13 @@ class BootstrapManagerTests(NeoTestBase): # Tests def testConnectionCompleted(self): - uuid = self.getNewUUID() - conn = Mock({"getUUID" : uuid, - "getAddress" : ("127.0.0.1", self.master_port)}) + conn = self.getFakeConnection(address=("127.0.0.1", self.master_port)) self.bootstrap.connectionCompleted(conn) self.checkAskPrimary(conn) def testHandleNotReady(self): # the primary is not ready - conn = Mock({}) + conn = self.getFakeConnection() self.bootstrap.notReady(conn, '') self.checkClosed(conn) self.checkNoPacketSent(conn) diff --git a/neo/tests/testEvent.py b/neo/tests/testEvent.py index 49f68e94..f03d8909 100644 --- a/neo/tests/testEvent.py +++ b/neo/tests/testEvent.py @@ -39,8 +39,8 @@ class EventTests(NeoTestBase): self.assertTrue(isinstance(em.epoll, Epoll)) # use a mock object instead of epoll em.epoll = Mock() - connector = Mock({"getDescriptor" : 1014}) - conn = Mock({'getConnector': connector}) + connector = self.getFakeConnector(descriptor=1014) + conn = self.getFakeConnection(connector=connector) self.assertEqual(len(em.getConnectionList()), 0) # test register/unregister @@ -52,8 +52,8 @@ class EventTests(NeoTestBase): self.assertEqual(data, 1014) self.assertEqual(len(em.getConnectionList()), 1) self.assertEqual(em.getConnectionList()[0].getDescriptor(), conn.getDescriptor()) - connector = Mock({"getDescriptor" : 1014}) - conn = Mock({'getConnector': connector}) + connector = self.getFakeConnector(descriptor=1014) + conn = self.getFakeConnection(connector=connector) em.unregister(conn) self.assertEquals(len(connector.mockGetNamedCalls("getDescriptor")), 1) self.assertEquals(len(em.epoll.mockGetNamedCalls("unregister")), 1) @@ -63,8 +63,7 @@ class EventTests(NeoTestBase): self.assertEqual(len(em.getConnectionList()), 0) # add/removeReader - connector = Mock({"getDescriptor" : 1515}) - conn = Mock({'getConnector': connector}) + conn = self.getFakeConnection() self.assertEqual(len(em.reader_set), 0) em.addReader(conn) self.assertEqual(len(em.reader_set), 1) @@ -80,8 +79,7 @@ class EventTests(NeoTestBase): self.assertEquals(len(em.epoll.mockGetNamedCalls("modify")), 2) # add/removeWriter - connector = Mock({"getDescriptor" : 1515}) - conn = Mock({'getConnector': connector}) + conn = self.getFakeConnection() self.assertEqual(len(em.writer_set), 0) em.addWriter(conn) self.assertEqual(len(em.writer_set), 1) @@ -97,11 +95,11 @@ class EventTests(NeoTestBase): self.assertEquals(len(em.epoll.mockGetNamedCalls("modify")), 4) # poll - r_connector = Mock({"getDescriptor" : 14515}) - r_conn = Mock({'getConnector': r_connector}) + r_connector = self.getFakeConnector(descriptor=14515) + r_conn = self.getFakeConnection(connector=r_connector) em.register(r_conn) - w_connector = Mock({"getDescriptor" : 351621}) - w_conn = Mock({'getConnector': w_connector}) + w_connector = self.getFakeConnector(descriptor=351621) + w_conn = self.getFakeConnection(connector=w_connector) em.register(w_conn) em.epoll = Mock({"poll":( (r_connector.getDescriptor(),), -- 2.30.9