SF.net SVN: fclient: [195] trunk/sandbox/fcp/test_fcp/test_fcp2_0_client.py
Status: Pre-Alpha
Brought to you by:
jurner
From: <ju...@us...> - 2008-02-09 09:34:51
|
Revision: 195 http://fclient.svn.sourceforge.net/fclient/?rev=195&view=rev Author: jurner Date: 2008-02-09 01:34:57 -0800 (Sat, 09 Feb 2008) Log Message: ----------- added plugin message test cases Modified Paths: -------------- trunk/sandbox/fcp/test_fcp/test_fcp2_0_client.py Modified: trunk/sandbox/fcp/test_fcp/test_fcp2_0_client.py =================================================================== --- trunk/sandbox/fcp/test_fcp/test_fcp2_0_client.py 2008-02-09 09:34:37 UTC (rev 194) +++ trunk/sandbox/fcp/test_fcp/test_fcp2_0_client.py 2008-02-09 09:34:57 UTC (rev 195) @@ -483,7 +483,7 @@ 'arbitrary-uri', ) myRequest = self.fcpClient.getRequest(myIdentifier) - allRequests = self.fcpClient.getRequests() + requestsAll = self.fcpClient.getRequests() # respond to the file request self.sendResponseMessage( @@ -534,18 +534,17 @@ self.assertHasNextEvent( self.fcpClient.events.RequestCompleted, consts.Message.ClientGet, - ('FcRequestStatus', consts.RequestStatus.Null | - consts.RequestStatus.Success | - consts.RequestStatus.RemovedFromQueue - ), + ('FcRequestStatus', consts.RequestStatus.Success | + consts.RequestStatus.RemovedFromQueue + ), data=data ) - self.failIf(myIdentifier in allRequests) + self.failIf(myIdentifier in requestsAll) self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed) # cheat a bit to test peristence == Forever (client should not remove request) - allRequests[myIdentifier] =myRequest + requestsAll[myIdentifier] =myRequest myRequest['Persistence'] = consts.Persistence.Forever myRequest['FcRequestStatus'] &= ~(consts.RequestStatus.Success | consts.RequestStatus.Completed | @@ -563,11 +562,10 @@ self.assertHasNextEvent( self.fcpClient.events.RequestCompleted, consts.Message.ClientGet, - ('FcRequestStatus', consts.RequestStatus.Null | - consts.RequestStatus.Success), + ('FcRequestStatus', consts.RequestStatus.Success), data=data ) - self.failUnless(myIdentifier in allRequests) + self.failUnless(myIdentifier in requestsAll) self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed) self.assertHasNextEvent(None) @@ -579,7 +577,7 @@ 'arbitrary-uri', ) myRequest = self.fcpClient.getRequest(myIdentifier) - allRequests = self.fcpClient.getRequests() + requestsAll = self.fcpClient.getRequests() # respond to the file request self.sendResponseMessage( @@ -601,10 +599,9 @@ self.assertHasNextEvent( self.fcpClient.events.RequestFailed, consts.Message.ClientGet, - ('FcRequestStatus', consts.RequestStatus.Null | - consts.RequestStatus.Error | - consts.RequestStatus.RemovedFromQueue - ) + ('FcRequestStatus', consts.RequestStatus.Error | + consts.RequestStatus.RemovedFromQueue + ), ) self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed) self.assertHasNextEvent(None) @@ -613,7 +610,7 @@ # cheat a bit to test peristence == Forever (client should not remove request) - allRequests[myIdentifier] =myRequest + requestsAll[myIdentifier] =myRequest myRequest['Persistence'] = consts.Persistence.Forever myRequest['FcRequestStatus'] &= ~(consts.RequestStatus.Error | consts.RequestStatus.Completed | @@ -631,11 +628,9 @@ self.assertHasNextEvent( self.fcpClient.events.RequestFailed, consts.Message.ClientGet, - ('FcRequestStatus', consts.RequestStatus.Null | - consts.RequestStatus.Error - ), + ('FcRequestStatus', consts.RequestStatus.Error), ) - self.failUnless(myIdentifier in allRequests) + self.failUnless(myIdentifier in requestsAll) self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed) self.assertHasNextEvent(None) @@ -648,7 +643,7 @@ 'arbitryry.txt' ) myRequest = self.fcpClient.getRequest(myIdentifier) - allRequests = self.fcpClient.getRequests() + requestsAll = self.fcpClient.getRequests() self.assertHasNextMessage(consts.Message.ClientGet) @@ -674,12 +669,11 @@ self.assertHasNextEvent( self.fcpClient.events.RequestCompleted, consts.Message.ClientGet, - ('FcRequestStatus', consts.RequestStatus.Null | - consts.RequestStatus.Success | - consts.RequestStatus.RemovedFromQueue - ) + ('FcRequestStatus', consts.RequestStatus.Success | + consts.RequestStatus.RemovedFromQueue + ), ) - self.failIf(myIdentifier in allRequests) + self.failIf(myIdentifier in requestsAll) self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed) self.assertHasNextEvent(None) @@ -692,7 +686,7 @@ 'arbitryry.txt' ) myRequest = self.fcpClient.getRequest(myIdentifier) - allRequests = self.fcpClient.getRequests() + requestsAll = self.fcpClient.getRequests() self.assertHasNextMessage(consts.Message.ClientGet) @@ -714,12 +708,11 @@ self.assertHasNextEvent( self.fcpClient.events.RequestFailed, consts.Message.ClientGet, - ('FcRequestStatus', consts.RequestStatus.Null | - consts.RequestStatus.Error | - consts.RequestStatus.RemovedFromQueue - ) + ('FcRequestStatus', consts.RequestStatus.Error | + consts.RequestStatus.RemovedFromQueue + ), ) - self.failIf(myIdentifier in allRequests) + self.failIf(myIdentifier in requestsAll) self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed) self.assertHasNextEvent(None) @@ -731,7 +724,7 @@ 'arbitrary-uri', ) myRequest = self.fcpClient.getRequest(myIdentifier) - allRequests = self.fcpClient.getRequests() + requestsAll = self.fcpClient.getRequests() self.assertHasNextMessage(consts.Message.ClientGet) @@ -757,12 +750,11 @@ self.assertHasNextEvent( self.fcpClient.events.RequestCompleted, consts.Message.ClientGet, - ('FcRequestStatus', consts.RequestStatus.Null | - consts.RequestStatus.Success | - consts.RequestStatus.RemovedFromQueue - ) + ('FcRequestStatus', consts.RequestStatus.Success | + consts.RequestStatus.RemovedFromQueue + ), ) - self.failIf(myIdentifier in allRequests) + self.failIf(myIdentifier in requestsAll) self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed) self.assertHasNextEvent(None) @@ -775,7 +767,7 @@ 'arbitrary-uri', ) myRequest = self.fcpClient.getRequest(myIdentifier) - allRequests = self.fcpClient.getRequests() + requestsAll = self.fcpClient.getRequests() self.assertHasNextMessage(consts.Message.ClientGet) @@ -797,10 +789,9 @@ self.assertHasNextEvent( self.fcpClient.events.RequestCompleted, consts.Message.ClientGet, - ('FcRequestStatus', consts.RequestStatus.Null | - consts.RequestStatus.Success | - consts.RequestStatus.RemovedFromQueue - ) + ('FcRequestStatus', consts.RequestStatus.Success | + consts.RequestStatus.RemovedFromQueue + ), ) self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed) self.assertHasNextEvent(None) @@ -834,10 +825,9 @@ self.assertHasNextEvent( self.fcpClient.events.RequestFailed, consts.Message.ClientGet, - ('FcRequestStatus', consts.RequestStatus.Null | - consts.RequestStatus.Error | - consts.RequestStatus.RemovedFromQueue - ) + ('FcRequestStatus', consts.RequestStatus.Error | + consts.RequestStatus.RemovedFromQueue + ), ) self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed) self.assertHasNextEvent(None) @@ -850,10 +840,6 @@ #*********************************************************************************** # #*********************************************************************************** -#TODO: testGetRequest() -#TODO: testGetRequest() -#TODO: testResendRequest() - class TestRequests(BaseTestConnectedClient): @@ -919,14 +905,20 @@ self.fcpClient.removeRequest(myIdentifier) # of our request should be removed emidiately, - self.assertEqual(myRequest['FcRequestStatus'], consts.RequestStatus.Null | - consts.RequestStatus.Removed | + self.assertEqual(myRequest['FcRequestStatus'], consts.RequestStatus.Removed | consts.RequestStatus.Completed | consts.RequestStatus.RemovedFromQueue ) self.failIf(myIdentifier in self.fcpClient.getRequests()) # now the request should have been removed + self.assertHasNextEvent( + self.fcpClient.events.RequestRemoved, + consts.Message.ClientGet, + ('FcRequestStatus', consts.RequestStatus.Removed | + consts.RequestStatus.RemovedFromQueue + ), + ) self.failIf(self.fcpClient.getRequests()) self.assertHasNextEvent(None) @@ -957,9 +949,7 @@ # status of our request should be set to removed emidiately, but it should # not be removed from the client - self.assertEqual(myRequest['FcRequestStatus'], consts.RequestStatus.Null | - consts.RequestStatus.Removed - ) + self.assertEqual(myRequest['FcRequestStatus'], consts.RequestStatus.Removed) self.failUnless(myIdentifier in self.fcpClient.getRequests()) # client schould send a RemovePersistentRequest @@ -974,6 +964,14 @@ # now the request should have been removed self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.RemovedFromQueue) self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed) + self.assertHasNextEvent( + self.fcpClient.events.RequestRemoved, + consts.Message.ClientGet, + ('FcRequestStatus', consts.RequestStatus.Removed | + consts.RequestStatus.RemovedFromQueue + ), + ) + self.failIf(self.fcpClient.getRequests()) self.assertHasNextEvent(None) @@ -983,30 +981,36 @@ myIdentifier = self.fcpClient.getData('any-key') myRequest = self.fcpClient.getRequest(myIdentifier) - allRequests = self.fcpClient.getRequests() + requestsAll = self.fcpClient.getRequests() self.assertHasNextMessage(consts.Message.ClientGet) newIdentifier = self.fcpClient.resendRequest(myRequest) # client should remove old request emidiately self.failIf(myIdentifier == newIdentifier) - self.failIf(myIdentifier in allRequests) - self.failUnless(newIdentifier in allRequests) - + self.failIf(myIdentifier in requestsAll) + self.failUnless(newIdentifier in requestsAll) + self.assertHasNextEvent( + self.fcpClient.events.RequestRemoved, + consts.Message.ClientGet, + ('FcRequestStatus', consts.RequestStatus.Removed | + consts.RequestStatus.RemovedFromQueue + ), + ) + self.assertHasNextMessage(consts.Message.ClientGet) - - + def testResendRequest_Persistent(self): myIdentifier = self.fcpClient.getData('any-key', persistence=consts.Persistence.Reboot) myRequest = self.fcpClient.getRequest(myIdentifier) - allRequests = self.fcpClient.getRequests() + requestsAll = self.fcpClient.getRequests() self.assertHasNextMessage(consts.Message.ClientGet) newIdentifier = self.fcpClient.resendRequest(myRequest) self.failIf(myIdentifier == newIdentifier) - self.failUnless(newIdentifier in allRequests) + self.failUnless(newIdentifier in requestsAll) # client should remove request from nodes queue self.assertHasNextMessage( @@ -1021,14 +1025,17 @@ 'PersistentRequestRemoved', Identifier=myIdentifier, ) + self.assertHasNextEvent( + self.fcpClient.events.RequestRemoved, + consts.Message.ClientGet, + ('FcRequestStatus', consts.RequestStatus.Removed | + consts.RequestStatus.RemovedFromQueue + ), + ) - self.failUnless(newIdentifier in allRequests) - self.failIf(myIdentifier in allRequests) + self.failUnless(newIdentifier in requestsAll) + self.failIf(myIdentifier in requestsAll) - - - - #*********************************************************************************** # @@ -1072,7 +1079,7 @@ 'arbitryry.txt' ) myRequest = self.fcpClient.getRequest(myIdentifier) - allRequests = self.fcpClient.getRequests() + requestsAll = self.fcpClient.getRequests() self.fcpClient.removeRequest(myIdentifier) self.sendResponseMessage( @@ -1102,7 +1109,7 @@ ('FcRequestStatus', consts.RequestStatus.Restored), # no RequestStatus.Pending flag should be set here ) - self.failUnless(myIdentifier in allRequests) + self.failUnless(myIdentifier in requestsAll) self.assertHasNextEvent(None) #*********************************************************************************** @@ -1342,15 +1349,154 @@ #*********************************************************************************** # #*********************************************************************************** -#TODO: class TestPlugins(BaseTestConnectedClient): +class TestPlugins(BaseTestConnectedClient): + + + def testGetPluginInfo_Success(self): + + myIdentifier = self.fcpClient.getPluginInfo('hi there') + myRequest = self.fcpClient.getRequest(myIdentifier) + requestsAll = self.fcpClient.getRequests() + + self.failUnless(myIdentifier in requestsAll) + self.assertHasNextMessage( + consts.Message.GetPluginInfo, + ('Identifier', myIdentifier), + ('PluginName', 'hi there'), + ) + + self.sendResponseMessage( + consts.Message.PluginInfo, + PluginName='hi there', + Identifier=myIdentifier, + ) + + msg = self.assertHasNextEvent( + self.fcpClient.events.PluginInfo, + consts.Message.GetPluginInfo, + ('Identifier', myIdentifier), + ('PluginName', 'hi there'), + ('FcRequestStatus', consts.RequestStatus.Success | + consts.RequestStatus.RemovedFromQueue + ), + ) + + self.assertHasNextEvent(None) + self.failIf(myIdentifier in requestsAll) + self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed) + + def testGetPluginInfo_Failure(self): + myIdentifier = self.fcpClient.getPluginInfo('hi there') + myRequest = self.fcpClient.getRequest(myIdentifier) + requestsAll = self.fcpClient.getRequests() + + self.failUnless(myIdentifier in requestsAll) + self.assertHasNextMessage( + consts.Message.GetPluginInfo, + ('Identifier', myIdentifier), + ('PluginName', 'hi there'), + ) + + self.sendResponseMessage( + consts.Message.ProtocolError, + Code=32, # No such plugin + Identifier=myIdentifier, + ) + + msg = self.assertHasNextEvent( + self.fcpClient.events.PluginInfoFailed, + consts.Message.GetPluginInfo, + #('PluginName', 'hi there'), + ('Identifier', myIdentifier), + ('FcRequestStatus', consts.RequestStatus.Error | + consts.RequestStatus.RemovedFromQueue + ), + ) + + self.assertHasNextEvent(None) + self.failIf(myIdentifier in requestsAll) + self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed) + + + def testSendPluginMessage_Success(self): + + myIdentifier = self.fcpClient.sendPluginMessage('hi there', {'foo': "bar"}) + myRequest = self.fcpClient.getRequest(myIdentifier) + requestsAll = self.fcpClient.getRequests() + + self.failUnless(myIdentifier in requestsAll) + self.assertHasNextMessage( + consts.Message.FCPPluginMessage, + ('Identifier', myIdentifier), + ('PluginName', 'hi there'), + ('foo', 'bar'), + ) + + self.sendResponseMessage( + consts.Message.FCPPluginReply, + PluginName='hi there', + Identifier=myIdentifier, + baz='12345', + ) + + msg = self.assertHasNextEvent( + self.fcpClient.events.PluginMessage, + consts.Message.FCPPluginMessage, + ('PluginName', 'hi there'), + ('Identifier', myIdentifier), + ('FcRequestStatus', consts.RequestStatus.Success | + consts.RequestStatus.RemovedFromQueue + ), + ) + reply = msg['FcPluginReply'] + self.failUnless(reply.params.get('baz', None) == '12345') + + self.assertHasNextEvent(None) + self.failIf(myIdentifier in requestsAll) + self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed) + + + def testGetSendPluginMessage_Failure(self): + myIdentifier = self.fcpClient.sendPluginMessage('hi there', {'foo': "bar"}) + myRequest = self.fcpClient.getRequest(myIdentifier) + requestsAll = self.fcpClient.getRequests() + + self.failUnless(myIdentifier in requestsAll) + self.assertHasNextMessage( + consts.Message.FCPPluginMessage, + ('Identifier', myIdentifier), + ('PluginName', 'hi there'), + ('foo', 'bar'), + ) + + self.sendResponseMessage( + consts.Message.ProtocolError, + Code=32, # No such plugin + Identifier=myIdentifier, + ) + + msg = self.assertHasNextEvent( + self.fcpClient.events.PluginMessageFailed, + consts.Message.FCPPluginMessage, + #('PluginName', 'hi there'), + ('Identifier', myIdentifier), + ('FcRequestStatus', consts.RequestStatus.Error | + consts.RequestStatus.RemovedFromQueue + ), + ) + + self.assertHasNextEvent(None) + self.failIf(myIdentifier in requestsAll) + self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed) + + #*********************************************************************************** #TODO: class TestConfig(BaseTestConnectedClient): #*********************************************************************************** # #*********************************************************************************** -#TODO: class TestSSKKeypair(BaseTestConnectedClient): class TestGenerateKeypair(BaseTestConnectedClient): def testGeberateSSKKeypair(self): @@ -1454,6 +1600,7 @@ TestDDA, TestCollisions, + TestPlugins, TestGenerateKeypair, TestSubscribeUSK, ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |