def setUp(self): NeoUnitTestBase.setUp(self) config = self.getStorageConfiguration(master_number=1) self.app = Application(config) self.app.name = 'NEO' self.app.ready = True self.app.pt = PartitionTable(4, 1) self.identification = IdentificationHandler(self.app)
class StorageIdentificationHandlerTests(NeoUnitTestBase): def setUp(self): NeoUnitTestBase.setUp(self) config = self.getStorageConfiguration(master_number=1) self.app = Application(config) self.app.name = 'NEO' self.app.ready = True self.app.pt = PartitionTable(4, 1) self.identification = IdentificationHandler(self.app) def _tearDown(self, success): self.app.close() del self.app super(StorageIdentificationHandlerTests, self)._tearDown(success) def test_requestIdentification1(self): """ nodes are rejected during election or if unknown storage """ self.app.ready = False self.assertRaises( NotReadyError, self.identification.requestIdentification, self.getFakeConnection(), NodeTypes.CLIENT, self.getClientUUID(), None, self.app.name, ) self.app.ready = True self.assertRaises( NotReadyError, self.identification.requestIdentification, self.getFakeConnection(), NodeTypes.STORAGE, self.getStorageUUID(), None, self.app.name, ) def test_requestIdentification3(self): """ broken nodes must be rejected """ uuid = self.getClientUUID() conn = self.getFakeConnection(uuid=uuid) node = self.app.nm.createClient(uuid=uuid) node.setBroken() self.assertRaises( BrokenNodeDisallowedError, self.identification.requestIdentification, conn, NodeTypes.CLIENT, uuid, None, self.app.name, ) def test_requestIdentification2(self): """ accepted client must be connected and running """ uuid = self.getClientUUID() conn = self.getFakeConnection(uuid=uuid) node = self.app.nm.createClient(uuid=uuid) master = (self.local_ip, 3000) self.app.master_node = Mock({ 'getAddress': master, }) self.identification.requestIdentification(conn, NodeTypes.CLIENT, uuid, None, self.app.name) self.assertTrue(node.isRunning()) self.assertTrue(node.isConnected()) self.assertEqual(node.getUUID(), uuid) self.assertTrue(node.getConnection() is conn) args = self.checkAcceptIdentification(conn, decode=True) node_type, address, _np, _nr, _uuid, _master, _master_list = args self.assertEqual(node_type, NodeTypes.STORAGE) self.assertEqual(address, None) self.assertEqual(_uuid, uuid) self.assertEqual(_master, master)
class StorageIdentificationHandlerTests(NeoUnitTestBase): def setUp(self): NeoUnitTestBase.setUp(self) config = self.getStorageConfiguration(master_number=1) self.app = Application(config) self.app.name = 'NEO' self.app.ready = True self.app.pt = PartitionTable(4, 1) self.identification = IdentificationHandler(self.app) def _tearDown(self, success): self.app.close() del self.app super(StorageIdentificationHandlerTests, self)._tearDown(success) def test_requestIdentification1(self): """ nodes are rejected during election or if unknown storage """ self.app.ready = False self.assertRaises( NotReadyError, self.identification.requestIdentification, self.getFakeConnection(), NodeTypes.CLIENT, self.getClientUUID(), None, self.app.name, ) self.app.ready = True self.assertRaises( NotReadyError, self.identification.requestIdentification, self.getFakeConnection(), NodeTypes.STORAGE, self.getStorageUUID(), None, self.app.name, ) def test_requestIdentification3(self): """ broken nodes must be rejected """ uuid = self.getClientUUID() conn = self.getFakeConnection(uuid=uuid) node = self.app.nm.createClient(uuid=uuid) node.setBroken() self.assertRaises(BrokenNodeDisallowedError, self.identification.requestIdentification, conn, NodeTypes.CLIENT, uuid, None, self.app.name, ) def test_requestIdentification2(self): """ accepted client must be connected and running """ uuid = self.getClientUUID() conn = self.getFakeConnection(uuid=uuid) node = self.app.nm.createClient(uuid=uuid) master = (self.local_ip, 3000) self.app.master_node = Mock({ 'getAddress': master, }) self.identification.requestIdentification(conn, NodeTypes.CLIENT, uuid, None, self.app.name) self.assertTrue(node.isRunning()) self.assertTrue(node.isConnected()) self.assertEqual(node.getUUID(), uuid) self.assertTrue(node.getConnection() is conn) args = self.checkAcceptIdentification(conn, decode=True) node_type, address, _np, _nr, _uuid, _master, _master_list = args self.assertEqual(node_type, NodeTypes.STORAGE) self.assertEqual(address, None) self.assertEqual(_uuid, uuid) self.assertEqual(_master, master)