SF.net SVN: fclient: [498] trunk/fcp2/src/fcp2/test_fcp/test_client.py
Status: Pre-Alpha
Brought to you by:
jurner
|
From: <jU...@us...> - 2008-07-05 11:24:15
|
Revision: 498
http://fclient.svn.sourceforge.net/fclient/?rev=498&view=rev
Author: jUrner
Date: 2008-07-05 04:24:24 -0700 (Sat, 05 Jul 2008)
Log Message:
-----------
added some tests for clientGet/Put
Modified Paths:
--------------
trunk/fcp2/src/fcp2/test_fcp/test_client.py
Modified: trunk/fcp2/src/fcp2/test_fcp/test_client.py
===================================================================
--- trunk/fcp2/src/fcp2/test_fcp/test_client.py 2008-07-05 11:19:36 UTC (rev 497)
+++ trunk/fcp2/src/fcp2/test_fcp/test_client.py 2008-07-05 11:24:24 UTC (rev 498)
@@ -30,7 +30,7 @@
##TestAgainstNode = 0 # don't know how to test against node. Do not touch this!
# for testing some valid key data
-DummyKeyData = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA'
+DummyKeyData = 'aaa,bbb,ccc'
#***********************************************************************************
#
#***********************************************************************************
@@ -639,7 +639,7 @@
#***********************************************************************************
#
#***********************************************************************************
-# TODO: no idea how t test this
+# TODO: no idea how to test this
class Test_startNode(BaseTestClient):
pass
@@ -859,10 +859,14 @@
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
self.failUnless(self.ioOpen())
-
#***********************************************************************************
#
#***********************************************************************************
+#TODO: not tested
+class Test_clientGet(BaseTestClient): pass
+#***********************************************************************************
+#
+#***********************************************************************************
class Test_getData(BaseTestClient):
def test_100_request_registered(self):
@@ -1455,428 +1459,24 @@
#***********************************************************************************
#
#***********************************************************************************
-class Test_clientGet(BaseTestClient):
+class Test_clientPut(BaseTestClient):
- def test_2000_ClientGetRegistered(self):
-
- # request a arbitrary file
- myIdentifier = self.client.getData(
- 'arbitrary-uri',
- )
- myRequest = self.client.getRequest(myIdentifier)
- requestsAll = self.client.getRequests()
+ def test_keyTailIsDisallowed(self):
+ self.connectClient()
- self.assertHasNextMessage(fcp2.MsgClientGet)
- self.assertHasNextEvent(None)
-
- self.failUnless(myIdentifier in requestsAll)
- self.assertEqual(myIdentifier, myRequest['Identifier'])
- self.assertEqual(myRequest['RequestStatus'], fcp2.ConstRequestStatus.Null)
+ # key.tail is not allowed in all put actions
+ myKey = fcp2.KeyCHK(keyData=DummyKeyData, tail='foo')
+ self.assertRaises(ValueError, self.client.clientPut, fcp2.ConstRequestType.PutData, myKey, data='foo')
- self.assertHasNextEvent(None)
- self.assertHasNextMessage(None)
+ myKey = fcp2.KeySSK(keyData=DummyKeyData, tail='foo')
+ self.assertRaises(ValueError, self.client.clientPut, fcp2.ConstRequestType.PutData, myKey, data='foo')
- del requestsAll[myIdentifier]
- self.failIf(requestsAll)
-
-
+ myKey = fcp2.KeyUSK(keyData=DummyKeyData, tail='foo')
+ self.assertRaises(ValueError, self.client.clientPut, fcp2.ConstRequestType.PutData, myKey, data='foo')
- def test_2001_GetData_Success(self):
-
- # request a arbitrary file
- myIdentifier = self.client.getData(
- 'arbitrary-uri',
- )
- myRequest = self.client.getRequest(myIdentifier)
- requestsAll = self.client.getRequests()
-
- self.assertHasNextMessage(fcp2.MsgClientGet)
-
- # respond to the file request
- self.sendResponseMessage(
- 'PersistentGet',
- Started='false',
- **myRequest.params
- )
-
- # simulate a progress
- self.sendResponseMessage(
- 'SimpleProgress',
- Identifier=myIdentifier,
- Total=10,
- Required=8,
- Failed=0,
- FatallyFailed=0,
- FinalizedTotal='true',
- Succeeded=1,
- )
- self.assertHasNextEvent(
- self.client.events.RequestProgress,
- )
-
- # finalize request
- data = 'foo'
- params = {
- 'Identifier': myIdentifier,
- 'Global': 'false',
- 'DataLength': len(data),
- 'Metadata.ContentType': 'any',
- }
- self.sendResponseMessage(
- 'DataFound',
- **params
- )
- # we don't expect an event here....
- self.assertHasNextEvent(None)
-
- self.sendResponseMessage(
- 'AllData',
- data=data,
- Identifier=myIdentifier,
- Global='false',
- DataLength=len(data),
- )
-
- # client should complete and remove the request
- self.assertHasNextEvent(
- self.client.events.RequestCompleted,
- fcp2.MsgClientGet,
- ('RequestStatus', fcp2.ConstRequestStatus.Success |
- fcp2.ConstRequestStatus.RemovedFromQueue |
- fcp2.ConstRequestStatus.Completed
- ),
- data=data
- )
- self.failIf(myIdentifier in requestsAll)
- self.failUnless(myRequest['RequestStatus'] & fcp2.ConstRequestStatus.Completed)
-
-
- # cheat a bit to test peristence == Forever (client should not remove request)
- requestsAll[myIdentifier] =myRequest
- myRequest['Persistence'] = fcp2.Persistence.Forever
- myRequest['RequestStatus'] &= ~(fcp2.ConstRequestStatus.Success |
- fcp2.ConstRequestStatus.Completed |
- fcp2.ConstRequestStatus.RemovedFromQueue
- )
- self.sendResponseMessage(
- 'AllData',
- data=data,
- Identifier=myIdentifier,
- Global='false',
- DataLength=len(data),
- )
-
- # client should complete but not remove the request
- self.assertHasNextEvent(
- self.client.events.RequestCompleted,
- fcp2.MsgClientGet,
- ('RequestStatus', fcp2.ConstRequestStatus.Success | fcp2.ConstRequestStatus.Completed),
- data=data
- )
- self.failUnless(myIdentifier in requestsAll)
- self.failUnless(myRequest['RequestStatus'] & fcp2.ConstRequestStatus.Completed)
-
- self.assertHasNextEvent(None)
- self.assertHasNextMessage(None)
-
- del requestsAll[myIdentifier]
- self.failIf(requestsAll)
-
-
- def test_2002_GetData_Failure(self):
-
- # request a arbitrary file
- myIdentifier = self.client.getData(
- 'arbitrary-uri',
- )
- myRequest = self.client.getRequest(myIdentifier)
- requestsAll = self.client.getRequests()
-
- self.assertHasNextMessage(fcp2.MsgClientGet)
-
- # respond to the file request
- self.sendResponseMessage(
- 'PersistentGet',
- Started='false',
- **myRequest.params
- )
-
- # finalize request
- self.sendResponseMessage(
- 'GetFailed',
- Code='28', # All data not found
- Identifier=myIdentifier,
- Global='false',
- # blah.. more here
- )
-
- # client should complete request and remove it
- self.assertHasNextEvent(
- self.client.events.RequestFailed,
- fcp2.MsgClientGet,
- ('RequestStatus', fcp2.ConstRequestStatus.Error |
- fcp2.ConstRequestStatus.RemovedFromQueue |
- fcp2.ConstRequestStatus.Completed
- ),
- )
- self.assertHasNextEvent(None)
- self.assertHasNextMessage(None)
-
- #return
-
- # cheat a bit to test peristence == Forever (client should not remove request)
-
- requestsAll[myIdentifier] =myRequest
- myRequest['Persistence'] = fcp2.Persistence.Forever
- myRequest['RequestStatus'] &= ~(fcp2.ConstRequestStatus.Error |
- fcp2.ConstRequestStatus.Completed |
- fcp2.ConstRequestStatus.RemovedFromQueue
- )
- self.sendResponseMessage(
- 'GetFailed',
- Code='28', # All data not found
- Identifier=myIdentifier,
- Global='false',
- # blah.. more here
- )
-
- # client should complete but not remove the request
- self.assertHasNextEvent(
- self.client.events.RequestFailed,
- fcp2.MsgClientGet,
- ('RequestStatus', fcp2.ConstRequestStatus.Error | fcp2.ConstRequestStatus.Completed),
- )
- self.failUnless(myIdentifier in requestsAll)
- self.assertHasNextEvent(None)
- self.assertHasNextMessage(None)
-
- del requestsAll[myIdentifier]
- self.failIf(requestsAll)
-
-
- def test_2003_GetFile_Success(self):
-
- # request a arbitrary file
- myIdentifier = self.client.getFile(
- 'arbitrary-uri',
- 'arbitryry.txt'
- )
- myRequest = self.client.getRequest(myIdentifier)
- requestsAll = self.client.getRequests()
-
- self.assertHasNextMessage(fcp2.MsgClientGet)
-
- # respond to the file request
- self.sendResponseMessage(
- 'PersistentGet',
- Started='false',
- **myRequest.params
- )
-
- # finalize request
- data = 'foo'
- params = {
- 'Identifier': myIdentifier,
- 'Global': 'false',
- 'DataLength': 123456,
- 'Metadata.ContentType': 'any',
- }
- self.sendResponseMessage(
- 'DataFound',
- **params
- )
- self.assertHasNextEvent(
- self.client.events.RequestCompleted,
- fcp2.MsgClientGet,
- ('RequestStatus', fcp2.ConstRequestStatus.Success |
- fcp2.ConstRequestStatus.RemovedFromQueue |
- fcp2.ConstRequestStatus.Completed
- ),
- )
- self.failIf(myIdentifier in requestsAll)
- self.failUnless(myRequest['RequestStatus'] & fcp2.ConstRequestStatus.Completed)
- self.assertHasNextEvent(None)
- self.assertHasNextMessage(None)
-
- self.failIf(requestsAll)
-
-
- def test_2004_GetFile_Failure(self):
-
- # request a arbitrary file
- myIdentifier = self.client.getFile(
- 'arbitrary-uri',
- 'arbitryry.txt'
- )
- myRequest = self.client.getRequest(myIdentifier)
- requestsAll = self.client.getRequests()
-
- self.assertHasNextMessage(fcp2.MsgClientGet)
-
- # respond to the file request
- self.sendResponseMessage(
- 'PersistentGet',
- Started='false',
- **myRequest.params
- )
-
- # finalize request
- self.sendResponseMessage(
- 'GetFailed',
- Code='28', # All data not found
- Identifier=myIdentifier,
- Global='false',
- # blah.. more here
- )
-
- self.assertHasNextEvent(
- self.client.events.RequestFailed,
- fcp2.MsgClientGet,
- ('RequestStatus', fcp2.ConstRequestStatus.Error |
- fcp2.ConstRequestStatus.RemovedFromQueue |
- fcp2.ConstRequestStatus.Completed
- ),
- )
- self.failIf(myIdentifier in requestsAll)
- self.assertHasNextEvent(None)
- self.assertHasNextMessage(None)
-
- self.failIf(requestsAll)
-
-
- def test_2005_GetKeyInfo_Success(self):
-
- # request a arbitrary uri
- myIdentifier = self.client.getKeyInfo(
- 'arbitrary-uri',
- )
- myRequest = self.client.getRequest(myIdentifier)
- requestsAll = self.client.getRequests()
-
- self.assertHasNextMessage(fcp2.MsgClientGet)
-
- # respond to the file request
- self.sendResponseMessage(
- 'PersistentGet',
- Started='false',
- **myRequest.params
- )
-
- # finalize request
- data = 'foo'
- params = {
- 'Identifier': myIdentifier,
- 'Global': 'false',
- 'DataLength': 123456,
- 'Metadata.ContentType': 'any',
- }
- self.sendResponseMessage(
- 'DataFound',
- **params
- )
- self.assertHasNextEvent(
- self.client.events.RequestCompleted,
- fcp2.MsgClientGet,
- ('RequestStatus', fcp2.ConstRequestStatus.Success |
- fcp2.ConstRequestStatus.RemovedFromQueue |
- fcp2.ConstRequestStatus.Completed
- ),
- )
- self.failIf(myIdentifier in requestsAll)
- self.failUnless(myRequest['RequestStatus'] & fcp2.ConstRequestStatus.Completed)
- self.assertHasNextEvent(None)
- self.assertHasNextMessage(None)
-
- self.failIf(requestsAll)
-
-
- def test_2006_GetKeyInfo_TooBig(self):
-
- # test specdial case where ProtocolError.TooBig is handled as success
- # request a arbitrary uri
- myIdentifier = self.client.getKeyInfo(
- 'arbitrary-uri',
- )
- myRequest = self.client.getRequest(myIdentifier)
- requestsAll = self.client.getRequests()
-
- self.assertHasNextMessage(fcp2.MsgClientGet)
-
- # respond to the file request
- self.sendResponseMessage(
- 'PersistentGet',
- Started='false',
- **myRequest.params
- )
-
- # finalize request
- self.sendResponseMessage(
- 'GetFailed',
- Code='21', # Too big
- Identifier=myIdentifier,
- Global='false',
- # blah.. more here
- )
- self.assertHasNextEvent(
- self.client.events.RequestCompleted,
- fcp2.MsgClientGet,
- ('RequestStatus', fcp2.ConstRequestStatus.Success |
- fcp2.ConstRequestStatus.RemovedFromQueue |
- fcp2.ConstRequestStatus.Completed
- ),
- )
- self.failUnless(myRequest['RequestStatus'] & fcp2.ConstRequestStatus.Completed)
- self.assertHasNextEvent(None)
- self.assertHasNextMessage(None)
-
- self.failIf(requestsAll)
-
-
-
- def test_2007_GetKeyInfo_Failure(self):
-
- # request a arbitrary file
- myIdentifier = self.client.getKeyInfo(
- 'arbitrary-uri',
- )
- myRequest = self.client.getRequest(myIdentifier)
- requestsAll = self.client.getRequests()
-
- self.assertHasNextMessage(fcp2.MsgClientGet)
-
- # respond to the file request
- self.sendResponseMessage(
- 'PersistentGet',
- Started='false',
- **myRequest.params
- )
-
- # finalize request
- self.sendResponseMessage(
- 'GetFailed',
- Code='28', # All data not found
- Identifier=myIdentifier,
- Global='false',
- # blah.. more here
- )
- self.assertHasNextEvent(
- self.client.events.RequestFailed,
- fcp2.MsgClientGet,
- ('RequestStatus', fcp2.ConstRequestStatus.Error |
- fcp2.ConstRequestStatus.RemovedFromQueue |
- fcp2.ConstRequestStatus.Completed
- ),
- )
- self.failUnless(myRequest['RequestStatus'] & fcp2.ConstRequestStatus.Completed)
- self.assertHasNextEvent(None)
- self.assertHasNextMessage(None)
-
- self.failIf(requestsAll)
-
#***********************************************************************************
#
#***********************************************************************************
-#TODO: check if TargetFilename handling is ok for CHKs
class Test_putData(BaseTestClient):
def test_putData_Success(self):
@@ -1946,6 +1546,8 @@
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
self.failIf(requestsAll)
+
+
#***********************************************************************************
#
#***********************************************************************************
@@ -3162,10 +2764,12 @@
Test_getConfig,
Test_modifyConfig,
+ Test_clientGet,
Test_getData,
Test_getFile,
Test_getKeyInfo,
+ Test_clientPut,
Test_putData,
Test_putDir,
Test_putFile,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|