SF.net SVN: fclient: [435] trunk/sandbox/fcp2/test_fcp/test_client.py
Status: Pre-Alpha
Brought to you by:
jurner
|
From: <jU...@us...> - 2008-06-30 08:58:32
|
Revision: 435
http://fclient.svn.sourceforge.net/fclient/?rev=435&view=rev
Author: jUrner
Date: 2008-06-30 01:58:39 -0700 (Mon, 30 Jun 2008)
Log Message:
-----------
more tests
Modified Paths:
--------------
trunk/sandbox/fcp2/test_fcp/test_client.py
Modified: trunk/sandbox/fcp2/test_fcp/test_client.py
===================================================================
--- trunk/sandbox/fcp2/test_fcp/test_client.py 2008-06-30 08:57:58 UTC (rev 434)
+++ trunk/sandbox/fcp2/test_fcp/test_client.py 2008-06-30 08:58:39 UTC (rev 435)
@@ -341,8 +341,6 @@
('DisconnectReason', consts.DisconnectReason.Close),
)
-
-
#***********************************************************************************
#
#***********************************************************************************
@@ -356,8 +354,9 @@
self.failIf(self.client.isOpen())
#***********************************************************************************
-#TODO: not idea how to test this
+#
#***********************************************************************************
+#TODO: not idea how to test this
class Test_connect(BaseTestClient):
pass
@@ -642,10 +641,10 @@
self.closeClient()
#***********************************************************************************
-# TODO: no idea how t test this
+#
#***********************************************************************************
+# TODO: no idea how t test this
class Test_startNode(BaseTestClient):
-
pass
#***********************************************************************************
@@ -659,25 +658,21 @@
self.client.setConnectionName('foo')
self.failIf(self.client.getConnectionName() != 'foo')
-
#***********************************************************************************
#
#***********************************************************************************
class Test_get_setDebugVerbosity(BaseTestClient):
-
def test_get_setDebugVerbosity(self):
oldVerbosity = self.client.getDebugVerbosity()
self.client.setDebugVerbosity(self.client.consts.DebugVerbosity.Quiet)
self.client.setDebugVerbosity(oldVerbosity)
-
#***********************************************************************************
#
#***********************************************************************************
class Test_versionCheckNodeHello(BaseTestClient):
-
def test_get_versionCheckNodeHello(self):
msg = {
@@ -716,8 +711,9 @@
self.failUnless(result == True)
#***********************************************************************************
-# TODO: not tested
+#
#***********************************************************************************
+# TODO: not tested
class Test_handleMessage(BaseTestClient):
pass
@@ -764,13 +760,12 @@
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
self.failUnless(self.ioOpen())
-
#***********************************************************************************
-#TODO: not tested yet
+#
#***********************************************************************************
+#TODO: not tested
class Test_run(BaseTestClient):
-
pass
#***********************************************************************************
@@ -869,9 +864,8 @@
self.assertHasNextMessage(None)
self.failUnless(self.ioOpen())
-
#***********************************************************************************
-# NOTE: all the in depth tests for getFile() getKeyInfo() are performed here
+#
#***********************************************************************************
class Test_getData(BaseTestClient):
@@ -1885,11 +1879,7 @@
#***********************************************************************************
#
#***********************************************************************************
-#TODO:
-#
-# x. check if TargetFilename handling is ok for CHKs
-#
-
+#TODO: check if TargetFilename handling is ok for CHKs
class Test_putData(BaseTestClient):
def test_putData_Success(self):
@@ -1959,93 +1949,16 @@
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
self.failIf(requestsAll)
-
-
#***********************************************************************************
#
-#***********************************************************************************
-class Test_putRedirect(BaseTestClient):
-
-
- def testPutRedirect_Success(self):
+#***********************************************************************************
+class Test_putDir(BaseTestClient):
+ def test_putDir_Success(self):
self.connectClient()
-
- # request a arbitrary file
- myRedirect = self.client.key.KSK('foo')
- myKey = self.client.key.key('CHK@' + self.client.key.DummyKeyData)
- myIdentifier = self.client.putRedirect(
- myRedirect,
- myKey,
- )
- myRequest = self.client.getRequest(myIdentifier)
- requestsAll = self.client.getRequests()
-
- self.assertHasNextMessage(consts.Message.ClientPut)
- self.failUnless(myIdentifier in requestsAll)
-
- self.sendResponseMessage(
- 'PutSuccessful',
- Identifier=myIdentifier,
- URI=myRedirect
- )
- self.assertHasNextEvent(
- self.client.events.RequestCompleted,
- consts.Message.ClientPut,
- ('RequestStatus', consts.RequestStatus.Success |
- consts.RequestStatus.RemovedFromQueue |
- consts.RequestStatus.Completed
- ),
- )
-
- self.assertHasNextEvent(None)
- self.assertHasNextMessage(None)
- self.failIf(requestsAll)
-
-
- def testPutRedirect_Failure(self):
- self.connectClient()
-
- # request a arbitrary file
- myRedirect = self.client.key.KSK('foo')
- myKey = self.client.key.key('CHK@' + self.client.key.DummyKeyData)
- myIdentifier = self.client.putRedirect(
- myRedirect,
+ myKey = self.client.key.KSK('foo')
+ myIdentifier = self.client.putDir(
myKey,
- )
- myRequest = self.client.getRequest(myIdentifier)
- requestsAll = self.client.getRequests()
-
- self.assertHasNextMessage(consts.Message.ClientPut)
- self.failUnless(myIdentifier in requestsAll)
-
- self.sendResponseMessage(
- 'PutFailed',
- Identifier=myIdentifier,
- Code='5', # rout not found
- )
-
- self.assertHasNextEvent(
- self.client.events.RequestFailed,
- consts.Message.ClientPut,
- ('RequestStatus', consts.RequestStatus.Error |
- consts.RequestStatus.RemovedFromQueue |
- consts.RequestStatus.Completed
- ),
- )
-
- self.assertHasNextEvent(None)
- self.assertHasNextMessage(None)
- self.failIf(requestsAll)
-
-
-
-
-class Test_clientPut(BaseTestClient):
-
- def XXXtestCHKPutDir_Success(self):
- # request a arbitrary file
- myIdentifier = self.client.chkPutDir(
'myDirectory'
)
myRequest = self.client.getRequest(myIdentifier)
@@ -2057,7 +1970,7 @@
self.sendResponseMessage(
'PutSuccessful',
Identifier=myIdentifier,
- URI='CHK@my-redirect-name'
+ URI=myKey
)
self.assertHasNextEvent(
@@ -2071,12 +1984,15 @@
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
- self.failIf(requestsAll)
-
+ self.failIf(requestsAll)
+
+
+ def test_putDir_Failure(self):
+ self.connectClient()
- def XXXtestCHKPutDir_Failure(self):
- # request a arbitrary file
- myIdentifier = self.client.chkPutDir(
+ myKey = self.client.key.KSK('foo')
+ myIdentifier = self.client.putDir(
+ myKey,
'myDirectory'
)
myRequest = self.client.getRequest(myIdentifier)
@@ -2104,10 +2020,17 @@
self.assertHasNextMessage(None)
self.failIf(requestsAll)
-
- def XXXtestCHKPutFile_Success(self):
- # request a arbitrary file
- myIdentifier = self.client.chkPutFile(
+#***********************************************************************************
+#
+#***********************************************************************************
+class Test_putFile(BaseTestClient):
+
+ def test_putFile_Success(self):
+ self.connectClient()
+
+ myKey = self.client.key.KSK('foo')
+ myIdentifier = self.client.putFile(
+ myKey,
'myFile.txt'
)
myRequest = self.client.getRequest(myIdentifier)
@@ -2119,7 +2042,7 @@
self.sendResponseMessage(
'PutSuccessful',
Identifier=myIdentifier,
- URI='CHK@my-redirect-name'
+ URI=myKey
)
self.assertHasNextEvent(
@@ -2134,11 +2057,14 @@
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
self.failIf(requestsAll)
-
+
+
+ def test_putFile_Failure(self):
+ self.connectClient()
- def XXXtestCHKPutFile_Failure(self):
- # request a arbitrary file
- myIdentifier = self.client.chkPutFile(
+ myKey = self.client.key.KSK('foo')
+ myIdentifier = self.client.putFile(
+ myKey,
'myFile.txt'
)
myRequest = self.client.getRequest(myIdentifier)
@@ -2164,11 +2090,14 @@
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
- self.failIf(requestsAll)
+ self.failIf(requestsAll)
-
-
- def XXXtestCHKPutMultiple_Success(self):
+#***********************************************************************************
+#
+#***********************************************************************************
+class Test_putMultiple(BaseTestClient):
+ def test_putMultiple_Success(self):
+ self.connectClient()
items = [
{
@@ -2194,7 +2123,9 @@
]
# request a arbitrary file
- myIdentifier = self.client.chkPutMultiple(
+ myKey = self.client.key.KSK('foo')
+ myIdentifier = self.client.putMultiple(
+ myKey,
items
)
myRequest = self.client.getRequest(myIdentifier)
@@ -2229,7 +2160,7 @@
self.sendResponseMessage(
'PutSuccessful',
Identifier=myIdentifier,
- URI='CHK@my-redirect-name'
+ URI=myKey
)
self.assertHasNextEvent(
@@ -2243,11 +2174,11 @@
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
- self.failIf(requestsAll)
+ self.failIf(requestsAll)
-
- def XXXtestCHKPutMultiple_ItemErrors(self):
-
+
+ def test_putMultiple_ItemErrors(self):
+ self.connectClient()
# upload directory is not allowed
items = [
@@ -2257,7 +2188,8 @@
'Name': 'myItem0',
},
]
- self.assertRaises(ValueError, self.client.chkPutMultiple, items)
+ myKey = self.client.key.KSK('foo')
+ self.assertRaises(ValueError, self.client.putMultiple, myKey, items)
#TODO: how to test required params?
# ...just some samples below
@@ -2270,7 +2202,7 @@
'Name': 'myItem0',
},
]
- self.assertRaises(ValueError, self.client.chkPutMultiple, items)
+ self.assertRaises(ValueError, self.client.putMultiple, myKey, items)
# param missing (we enforce all required parameters)
items = [
@@ -2280,26 +2212,91 @@
#'Name': 'myItem0',
},
]
- self.assertRaises(ValueError, self.client.chkPutMultiple, items)
+ self.assertRaises(ValueError, self.client.putMultiple, myKey, items)
+#***********************************************************************************
+#
+#***********************************************************************************
+class Test_putRedirect(BaseTestClient):
- # some sloppy tests for other key types
- def testSSKPutData(self):
- myIdentifier = self.client.chkPutData(
- 'arbitrary data'
+
+ def testPutRedirect_Success(self):
+ self.connectClient()
+
+ # request a arbitrary file
+ myRedirect = self.client.key.KSK('foo')
+ myKey = self.client.key.key('CHK@' + self.client.key.DummyKeyData)
+ myIdentifier = self.client.putRedirect(
+ myRedirect,
+ myKey,
)
+ myRequest = self.client.getRequest(myIdentifier)
+ requestsAll = self.client.getRequests()
+
+ self.assertHasNextMessage(consts.Message.ClientPut)
+ self.failUnless(myIdentifier in requestsAll)
+
+ self.sendResponseMessage(
+ 'PutSuccessful',
+ Identifier=myIdentifier,
+ URI=myRedirect
+ )
+
+ self.assertHasNextEvent(
+ self.client.events.RequestCompleted,
+ consts.Message.ClientPut,
+ ('RequestStatus', consts.RequestStatus.Success |
+ consts.RequestStatus.RemovedFromQueue |
+ consts.RequestStatus.Completed
+ ),
+ )
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failIf(requestsAll)
-
+
+ def testPutRedirect_Failure(self):
+ self.connectClient()
+
+ # request a arbitrary file
+ myRedirect = self.client.key.KSK('foo')
+ myKey = self.client.key.key('CHK@' + self.client.key.DummyKeyData)
+ myIdentifier = self.client.putRedirect(
+ myRedirect,
+ myKey,
+ )
+ myRequest = self.client.getRequest(myIdentifier)
+ requestsAll = self.client.getRequests()
+
+ self.assertHasNextMessage(consts.Message.ClientPut)
+ self.failUnless(myIdentifier in requestsAll)
+
+ self.sendResponseMessage(
+ 'PutFailed',
+ Identifier=myIdentifier,
+ Code='5', # rout not found
+ )
+
+ self.assertHasNextEvent(
+ self.client.events.RequestFailed,
+ consts.Message.ClientPut,
+ ('RequestStatus', consts.RequestStatus.Error |
+ consts.RequestStatus.RemovedFromQueue |
+ consts.RequestStatus.Completed
+ ),
+ )
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failIf(requestsAll)
-
-
-
#***********************************************************************************
#
#***********************************************************************************
-class Test_requests(BaseTestClient):
-
- def test_3000_ModifyRequest_Persistent(self):
+class Test_modifyRequest(BaseTestClient):
+
+ def test_modifyRequest_Persistent(self):
self.connectClient()
@@ -2349,7 +2346,7 @@
self.failIf(requestsAll)
- def test_3001_ModifyRequest_NonPersistent(self):
+ def test_modifyRequest_NonPersistent(self):
self.connectClient()
# request a arbitrary file
@@ -2397,9 +2394,12 @@
del requestsAll[myIdentifier]
self.failIf(requestsAll)
+#***********************************************************************************
+#
+#***********************************************************************************
+class Test_removeRequest(BaseTestClient):
-
- def test_3002_RemoveRequest(self):
+ def test_removeRequest(self):
self.connectClient()
# request a file
@@ -2454,82 +2454,32 @@
self.assertHasNextMessage(None)
self.failIf(requestsAll)
-
- def test_3005_ResendRequest_Persistent(self):
- self.connectClient()
-
- myKey = self.client.key.key('KSK@foo')
- myIdentifier = self.client.getData(myKey, persistence=consts.Persistence.Reboot)
- myRequest = self.client.getRequest(myIdentifier)
- requestsAll = self.client.getRequests()
- self.assertHasNextMessage(consts.Message.ClientGet)
-
- newIdentifier = self.client.resendRequest(myRequest)
- self.failIf(myIdentifier == newIdentifier)
- self.failUnless(newIdentifier in requestsAll)
-
- # client should remove request from nodes queue
- self.assertHasNextMessage(
- consts.Message.RemoveRequest,
- ('Identifier', myIdentifier)
- )
- self.assertHasNextMessage(
- consts.Message.ClientGet,
- ('Identifier', newIdentifier)
- )
- self.sendResponseMessage(
- 'GetFailed',
- Code='25',
- Identifier=myIdentifier,
- )
-
-
-
- self.assertHasNextEvent(
- self.client.events.RequestRemoved,
- consts.Message.ClientGet,
- ('RequestStatus', consts.RequestStatus.Removed |
- consts.RequestStatus.RemovedFromQueue |
- consts.RequestStatus.Completed
- ),
- )
-
- self.failUnless(newIdentifier in requestsAll)
- self.failIf(myIdentifier in requestsAll)
-
- del requestsAll[newIdentifier]
- self.failIf(requestsAll)
-
-
#***********************************************************************************
#
#***********************************************************************************
#TODO: testRestoreClientPut and friends
class Test_restoreRequests(BaseTestClient):
- def test_4000_RestorePersistentGet_InvalidClientToken(self):
+ def test_restorePersistentGet_invalidClientToken(self):
+ self.connectClient()
# throw an invalid PersistentRequest at the client
myIdentifier = '123456789'
- self.sendResponseMessage(
- 'PersistentGet',
- Identifier=myIdentifier,
- Global='false',
- ClientToken='i-am-invalid',
- ReturnType='disk',
- Verbosity='1',
- PersistenceType='forever',
- Started='false',
- Global='false',
- )
+ self.assertRaises(
+ consts.MessageParseError,
+ self.sendResponseMessage,
+ 'PersistentGet',
+ Identifier=myIdentifier,
+ Global='false',
+ ClientToken='i-am-invalid', # me is invalid ...me!
+ ReturnType='disk',
+ Verbosity='1',
+ PersistenceType='forever',
+ Started='false',
+ Global='false',
+ )
- # the client should now to cancel the request
- self.assertHasNextMessage(
- consts.Message.RemovePersistentRequest,
- ('Identifier', myIdentifier)
- )
-
requests = self.client.getRequests()
self.failIf(requests)
@@ -2538,11 +2488,13 @@
self.assertHasNextMessage(None)
- def test_4001_RestorePersistentGet_ValidIdentifier(self):
-
+ def test_restorePersistentGet_validIdentifier(self):
+ self.connectClient()
+
# we need a valid identifier to restore a request, so hack a bit
+ myKey = self.client.key.key('KSK@foo')
myIdentifier = self.client.getFile(
- 'arbitrary-uri',
+ myKey,
'arbitryry.txt'
)
myRequest = self.client.getRequest(myIdentifier)
@@ -2555,9 +2507,9 @@
'PersistentRequestRemoved',
Identifier=myIdentifier,
)
- self.messages = []
- self.events = []
-
+ self.assertHasNextMessage(self.client.message.RemoveRequest.name)
+ self.assertHasNextEvent(self.client.events.RequestRemoved)
+
# throw a PersistentGet at the client with the identifier we hacked
self.sendResponseMessage(
'PersistentGet',
@@ -2591,10 +2543,9 @@
#TODO: testDDAReadDenied_ReadDissallowed
#TODO: testDDAWriteDenied
#TODO: testDDAWriteDenied_WriteDisallowed
-
class Test_DDA(BaseTestClient):
- def test_5000_DDAWriteDenied(self):
+ def test_DDAWriteDenied(self):
self.connectClient()
# request a file
@@ -2696,7 +2647,7 @@
#***********************************************************************************
class TestCollisions(BaseTestClient):
- def test_6000_IdentifierCollision(self):
+ def test_identifierCollision(self):
self.connectClient()
# request a file
@@ -2740,7 +2691,7 @@
self.failIf(requestsAll)
- def test_6001_FilenameCollision_HandleRename(self):
+ def test_filenameCollision_HandleRename(self):
self.connectClient()
# request a file
@@ -2796,7 +2747,7 @@
self.failIf(requestsAll)
- def test_6002_FilenameCollision_HandleNever(self):
+ def test_filenameCollision_HandleNever(self):
self.connectClient()
# request a file
@@ -2848,113 +2799,6 @@
#***********************************************************************************
#
#***********************************************************************************
-#TODO: some tests not yet implemented
-class Test_resendRequests(BaseTestClient):
-
- def test_resend_CHK(self):
- myKey = 'CHK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo'
- msg = message.ClientPut(
- URI=myKey,
- Persistence=consts.Persistence.Connection,
- )
- self.client._registerRequest(msg, consts.RequestType.PutData)
- myIdentifier = msg['Identifier']
- requestsAll = self.client.getRequests()
-
- newIdentifier = self.client.resendRequest(msg)
-
- self.failIf(myIdentifier in requestsAll)
- self.failUnless(newIdentifier in requestsAll)
-
- self.assertHasNextMessage(
- consts.Message.ClientPut,
- ('URI', 'CHK@')
- )
-
- def test_resend_SSK(self):
- myKey = 'SSK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA'
- msg = message.ClientPut(
- URI=myKey + '/foo',
- Persistence=consts.Persistence.Connection,
- )
- self.client._registerRequest(msg, consts.RequestType.PutData)
- msg['PrivateKey'] = myKey
- myIdentifier = msg['Identifier']
- requestsAll = self.client.getRequests()
-
- newIdentifier = self.client.resendRequest(msg)
-
- self.failIf(myIdentifier in requestsAll)
- self.failUnless(newIdentifier in requestsAll)
-
- self.assertHasNextMessage(
- consts.Message.ClientPut,
- ('URI', myKey + '/foo')
- )
-
-
- def test_resend_USK(self):
- myKey = 'USK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA'
- msg = message.ClientPut(
- URI=myKey + '/foo/0',
- Persistence=consts.Persistence.Connection,
- )
- self.client._registerRequest(msg, consts.RequestType.PutData)
- msg['PrivateKey'] = myKey
- myIdentifier = msg['Identifier']
- requestsAll = self.client.getRequests()
-
- newIdentifier = self.client.resendRequest(msg)
-
- self.failIf(myIdentifier in requestsAll)
- self.failUnless(newIdentifier in requestsAll)
-
- self.assertHasNextMessage(
- consts.Message.ClientPut,
- ('URI', myKey + '/foo')
- )
-
- def test_resend_KSK(self):
- myKey = 'KSK@abs'
- msg = message.ClientPut(
- URI=myKey,
- Persistence=consts.Persistence.Connection,
- )
- self.client._registerRequest(msg, consts.RequestType.PutData)
- msg['PrivateKey'] = myKey
- myIdentifier = msg['Identifier']
- requestsAll = self.client.getRequests()
-
- newIdentifier = self.client.resendRequest(msg)
-
- self.failIf(myIdentifier in requestsAll)
- self.failUnless(newIdentifier in requestsAll)
-
- self.assertHasNextMessage(
- consts.Message.ClientPut,
- ('URI', myKey)
- )
-
-
-
- def test_resend_getKeyInfo(self):
- pass
-
- def test_resend_getData(self):
- pass
-
- def test_resend_getFile(self):
- pass
-
- def test_resend_getFile(self):
- pass
-
- def test_resend_unsupportedRequest(self):
- pass
-
-#***********************************************************************************
-#
-#***********************************************************************************
class Test_plugins(BaseTestClient):
@@ -3136,11 +2980,7 @@
self.assertHasNextMessage(None)
self.failIf(requestsAll)
-
#***********************************************************************************
-#TODO: class TestConfig(BaseTestConnectedClient):
-
-#***********************************************************************************
#
#***********************************************************************************
class Test_generateKeypair(BaseTestClient):
@@ -3166,8 +3006,8 @@
self.client.events.KeypairGenerated,
consts.Message.GenerateSSK,
('Identifier', myIdentifier),
- ('PublicKey',pub),
- ('PrivateKey',priv),
+ ('RequestURI',pub),
+ ('InsertURI',priv),
('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
@@ -3204,8 +3044,8 @@
self.client.events.KeypairGenerated,
consts.Message.GenerateSSK,
('Identifier', myIdentifier),
- ('PublicKey',pub),
- ('PrivateKey',priv),
+ ('RequestURI',pub),
+ ('InsertURI',priv),
('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
@@ -3289,16 +3129,15 @@
Test_getKeyInfo,
Test_putData,
+ Test_putDir,
+ Test_putFile,
+ Test_putMultiple,
Test_putRedirect,
+
+ Test_modifyRequest,
+ Test_removeRequest,
- #Test_putData,
- #Test_clientPut,
-
- #Test_clientGet,
-
- Test_requests,
- #Test_restoreRequests,
- #Test_resendRequests,
+ Test_restoreRequests,
Test_DDA,
TestCollisions,
Test_plugins,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|