2 Created on Feb 17, 2014 9 import Constants
as CONSTANTS
10 import AdminExceptions
11 from NodeManagerRequest
import NodeManagerRequest
16 from mock
import MagicMock
19 from time
import sleep
42 self.assertTrue(self.nodeManagerRequest.connectionBuilder !=
None,
43 ">>> connectionBuilder field is None, after default consturctor")
44 iDGenerator = IDGenerator()
45 self.nodeManagerRequest = NodeManagerRequest(connectionIdGenerator=iDGenerator)
46 self.assertTrue(self.nodeManagerRequest.connectionBuilder !=
None,
47 ">>> connectionBuilder field is None, after consturctor with IDGenerator")
51 testData = [123,
"Body String"]
53 message = {CONSTANTS.STRING_MSGID_NAME : 123, CONSTANTS.STRING_BODY_NAME :
"Body String"}
54 nodeManagerResponse = self.
nodeManagerRequest.createNodeManagerResponse(response, message)
55 self.assertEqual(nodeManagerResponse.getErrorCode(), CONSTANTS.ERROR_NO,
56 ">>> [1] id request and id response not equal")
58 message = {CONSTANTS.STRING_MSGID_NAME : 124, CONSTANTS.STRING_BODY_NAME :
"Body String"}
59 nodeManagerResponse = self.
nodeManagerRequest.createNodeManagerResponse(response, message)
60 self.assertEqual(nodeManagerResponse.getErrorCode(), CONSTANTS.ERROR_BAD_MSG_ID,
61 ">>> [2] id request and id response are equal")
65 exceptionString =
None 67 exceptionString = CONSTANTS.STRING_EXCEPTION_WRONG_CONNECTION_KEY
68 with self.assertRaises(AdminExceptions.AdminWrongConnectionKey):
71 exceptionString = CONSTANTS.STRING_EXCEPTION_ADMIN_TIMEOUT
72 with self.assertRaises(AdminExceptions.AdminTimeoutException):
75 exceptionString =
"---> Some String <---" 76 with self.assertRaises(AdminExceptions.AdminTimeoutException):
81 mock = MagicMock(spec=ConnectionBuilder)
82 mock.build.side_effect = KeyError(
"Wrong Key")
85 testMsg = {CONSTANTS.STRING_MSGID_NAME : 123, CONSTANTS.STRING_BODY_NAME :
"Body String"}
86 with self.assertRaises(AdminExceptions.AdminWrongConnectionKey):
91 mock = MagicMock(spec=ConnectionBuilder)
94 testMsg = {CONSTANTS.STRING_MSGID_NAME : 123, CONSTANTS.STRING_BODY_NAME :
"Body String"}
95 connectionMock = MagicMock(spec=Connection)
96 mock_cfg = {
"build.return_value":connectionMock}
97 mock.configure_mock(**mock_cfg)
100 self.assertTrue(connectionMock.send.called,
">>> transport.Connection.send not call")
101 self.assertTrue(connectionMock.recv.called,
">>> transport.Connection.recv not call")
102 self.assertTrue(connectionMock.close.called,
">>> transport.Connection.close not call")
106 mock = MagicMock(spec=ConnectionBuilder)
108 testMsg = {CONSTANTS.STRING_MSGID_NAME : 123, CONSTANTS.STRING_BODY_NAME :
"Body String"}
109 connectionMock = MagicMock(spec=Connection)
110 mock_cfg = {
"build.return_value":connectionMock}
111 mock.configure_mock(**mock_cfg)
112 connectionMock.recv.side_effect = recvMockFunc
113 createNodeManagerResponseMock = MagicMock()
116 with self.assertRaises(AdminExceptions.AdminTimeoutException):
118 self.assertTrue(createNodeManagerResponseMock.called ==
False,
119 ">>> transport.Connection.close not call")
123 mock = MagicMock(spec=ConnectionBuilder)
126 testMsg = {CONSTANTS.STRING_MSGID_NAME : 123, CONSTANTS.STRING_BODY_NAME :
"Body String"}
127 connectionMock = MagicMock(spec=Connection)
128 connectionMock.send.side_effect = sendMockFunc
129 mock_cfg = {
"build.return_value":connectionMock}
130 mock.configure_mock(**mock_cfg)
132 with self.assertRaises(AdminExceptions.AdminTimeoutException):
134 self.assertTrue(connectionMock.send.called,
">>> transport.Connection.send wasn't call")
135 self.assertTrue(connectionMock.recv.called ==
False,
">>> transport.Connection.recv was call")
136 self.assertTrue(connectionMock.close.called,
">>> transport.Connection.close wasn't call")
139 if __name__ ==
"__main__":
def sendMockFunc(request)
def testMakeRequest4(self)
def makeRequest(self, node, message, commandTimeout=None)
makeRequest main class method, it gets node and message params, interact with transport layer...
def testRaiseAdminExceptions(self)
def testMakeRequest1(self)
It's a wrapper similar to zmsg.hpp in sense of encapsulation of hce response message structure...
def testCreateNodeManagerResponse(self)
def raiseAdminExceptions(self, exceptionString)
raiseAdminExceptions method generates exceptions based on analyze of exceptionString param's data ...
def testMakeRequest2(self)
def testNodeManagerRequestConstructor(self)
def testMakeRequest3(self)
def recvMockFunc(timeout)