Thread: SF.net SVN: fclient: [296] trunk/sandbox/fcp2/test_fcp/test_client.py
Status: Pre-Alpha
Brought to you by:
jurner
|
From: <ju...@us...> - 2008-02-27 14:14:01
|
Revision: 296
http://fclient.svn.sourceforge.net/fclient/?rev=296&view=rev
Author: jurner
Date: 2008-02-27 06:14:01 -0800 (Wed, 27 Feb 2008)
Log Message:
-----------
set client debug level to quiet
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-02-27 14:13:38 UTC (rev 295)
+++ trunk/sandbox/fcp2/test_fcp/test_client.py 2008-02-27 14:14:01 UTC (rev 296)
@@ -118,7 +118,8 @@
if TestAgainstNode:
DummySocketModule.socket = MySocketFactory()
fcpClient = MyFcpClient(
- #debugVerbosity=FcpClient.consts.DebugVerbosity.Debug
+ #debugVerbosity=Client.consts.DebugVerbosity.Debug
+ debugVerbosity=Client.consts.DebugVerbosity.Quiet
)
# inject our customized socket module
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ju...@us...> - 2008-02-27 16:56:00
|
Revision: 299
http://fclient.svn.sourceforge.net/fclient/?rev=299&view=rev
Author: jurner
Date: 2008-02-27 08:56:03 -0800 (Wed, 27 Feb 2008)
Log Message:
-----------
added some tests for ClientPut et al
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-02-27 16:55:41 UTC (rev 298)
+++ trunk/sandbox/fcp2/test_fcp/test_client.py 2008-02-27 16:56:03 UTC (rev 299)
@@ -47,6 +47,9 @@
# deepcopy here, we need exact state
msg = copy.deepcopy(msg)
self.test_messagesSend.append(msg)
+
+ def clearMessagesSend(self):
+ self.test_messagesSend = []
#***********************************************************************************
#
@@ -139,6 +142,15 @@
msg = copy.deepcopy(msg)
self.events.append( (event, msg) )
+
+ def clearClient(self):
+ """Clears all messages send, requests registered and events triggered so far"""
+ # clean up the mess we eventaully left behinf
+ self.events = []
+ self.fcpClient.clearMessagesSend()
+ self.fcpClient._requests = {}
+
+
def connectClient(self):
"""Connects to the client"""
for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=20, timeout=0.1)):
@@ -230,6 +242,16 @@
param3=None,
param4=None,
param5=None,
+ param6=None,
+ param7=None,
+ param8=None,
+ param9=None,
+ param10=None,
+ param11=None,
+ param12=None,
+ param13=None,
+ param14=None,
+ param15=None,
data=None
):
"""Tests if we received a certain message from the client
@@ -265,7 +287,47 @@
param5, value5 = param5
self.failUnless(param5 in msg.params)
self.assertEqual(value5, msg[param5])
-
+ if param6 is not None:
+ param6, value6 = param6
+ self.failUnless(param6 in msg.params)
+ self.assertEqual(value6, msg[param6])
+ if param7 is not None:
+ param7, value7 = param7
+ self.failUnless(param7 in msg.params)
+ self.assertEqual(value7, msg[param7])
+ if param8 is not None:
+ param8, value8 = param8
+ self.failUnless(param8 in msg.params)
+ self.assertEqual(value8, msg[param8])
+ if param9 is not None:
+ param9, value9 = param9
+ self.failUnless(param9 in msg.params)
+ self.assertEqual(value9, msg[param9])
+ if param10 is not None:
+ param10, value10 = param10
+ self.failUnless(param10 in msg.params)
+ self.assertEqual(value10, msg[param10])
+ if param11 is not None:
+ param11, value11 = param11
+ self.failUnless(param11 in msg.params)
+ self.assertEqual(value11, msg[param11])
+ if param12 is not None:
+ param12, value12 = param12
+ self.failUnless(param12 in msg.params)
+ self.assertEqual(value12, msg[param12])
+ if param13 is not None:
+ param13, value13 = param13
+ self.failUnless(param13 in msg.params)
+ self.assertEqual(value13, msg[param13])
+ if param14 is not None:
+ param14, value14 = param14
+ self.failUnless(param14 in msg.params)
+ self.assertEqual(value14, msg[param14])
+ if param15 is not None:
+ param15, value15 = param15
+ self.failUnless(param15 in msg.params)
+ self.assertEqual(value15, msg[param15])
+
if data is not None:
self.assertEqual(data, msg.data)
return msg
@@ -289,6 +351,7 @@
event -= self._captureEventsFromClient
# clean up tmpfiles
for fpath in self.tmpfiles: os.remove(fpath)
+ self.clearClient()
#***********************************************************************************
#
@@ -956,11 +1019,11 @@
#***********************************************************************************
#TODO:
#
-#
-#
+# SSK@, USK@
+# putFile / PutDir TestDDA
+
class TestClientPut(BaseTestClient):
-
-
+
def testPutRedirect_Success(self):
# request a arbitrary file
myIdentifier = self.fcpClient.putRedirect(
@@ -1025,9 +1088,311 @@
self.failIf(requestsAll)
+ def testCHKPutData_Success(self):
+ # request a arbitrary file
+ myIdentifier = self.fcpClient.chkPutData(
+ 'arbitrary data'
+ )
+ myRequest = self.fcpClient.getRequest(myIdentifier)
+ requestsAll = self.fcpClient.getRequests()
+ self.assertHasNextMessage(consts.Message.ClientPut)
+ self.failUnless(myIdentifier in requestsAll)
+ self.sendResponseMessage(
+ 'PutSuccessful',
+ Identifier=myIdentifier,
+ URI='CHK@my-redirect-name'
+ )
+
+ self.assertHasNextEvent(
+ self.fcpClient.events.RequestCompleted,
+ consts.Message.ClientPut,
+ ('FcRequestStatus', consts.RequestStatus.Success |
+ consts.RequestStatus.RemovedFromQueue |
+ consts.RequestStatus.Completed
+ ),
+ )
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failIf(requestsAll)
+
+
+ def testCHKPutData_Failure(self):
+ # request a arbitrary file
+ myIdentifier = self.fcpClient.chkPutData(
+ 'arbitrary data'
+ )
+ myRequest = self.fcpClient.getRequest(myIdentifier)
+ requestsAll = self.fcpClient.getRequests()
+
+ self.assertHasNextMessage(consts.Message.ClientPut)
+ self.failUnless(myIdentifier in requestsAll)
+
+ self.sendResponseMessage(
+ 'PutFailed',
+ Identifier=myIdentifier,
+ Code='5', # rout not found
+ )
+
+ self.assertHasNextEvent(
+ self.fcpClient.events.RequestFailed,
+ consts.Message.ClientPut,
+ ('FcRequestStatus', consts.RequestStatus.Error |
+ consts.RequestStatus.RemovedFromQueue |
+ consts.RequestStatus.Completed
+ ),
+ )
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failIf(requestsAll)
+
+ def testCHKPutDir_Success(self):
+ # request a arbitrary file
+ myIdentifier = self.fcpClient.chkPutDir(
+ 'myDirectory'
+ )
+ myRequest = self.fcpClient.getRequest(myIdentifier)
+ requestsAll = self.fcpClient.getRequests()
+
+ self.assertHasNextMessage(consts.Message.ClientPutDiskDir)
+ self.failUnless(myIdentifier in requestsAll)
+
+ self.sendResponseMessage(
+ 'PutSuccessful',
+ Identifier=myIdentifier,
+ URI='CHK@my-redirect-name'
+ )
+
+ self.assertHasNextEvent(
+ self.fcpClient.events.RequestCompleted,
+ consts.Message.ClientPutDiskDir,
+ ('FcRequestStatus', consts.RequestStatus.Success |
+ consts.RequestStatus.RemovedFromQueue |
+ consts.RequestStatus.Completed
+ ),
+ )
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failIf(requestsAll)
+
+
+ def testCHKPutDir_Failure(self):
+ # request a arbitrary file
+ myIdentifier = self.fcpClient.chkPutDir(
+ 'myDirectory'
+ )
+ myRequest = self.fcpClient.getRequest(myIdentifier)
+ requestsAll = self.fcpClient.getRequests()
+
+ self.assertHasNextMessage(consts.Message.ClientPutDiskDir)
+ self.failUnless(myIdentifier in requestsAll)
+
+ self.sendResponseMessage(
+ 'PutFailed',
+ Identifier=myIdentifier,
+ Code='5', # rout not found
+ )
+
+ self.assertHasNextEvent(
+ self.fcpClient.events.RequestFailed,
+ consts.Message.ClientPutDiskDir,
+ ('FcRequestStatus', consts.RequestStatus.Error |
+ consts.RequestStatus.RemovedFromQueue |
+ consts.RequestStatus.Completed
+ ),
+ )
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failIf(requestsAll)
+
+
+ def testCHKPutFile_Success(self):
+ # request a arbitrary file
+ myIdentifier = self.fcpClient.chkPutFile(
+ 'myFile.txt'
+ )
+ myRequest = self.fcpClient.getRequest(myIdentifier)
+ requestsAll = self.fcpClient.getRequests()
+
+ self.assertHasNextMessage(consts.Message.ClientPut)
+ self.failUnless(myIdentifier in requestsAll)
+
+ self.sendResponseMessage(
+ 'PutSuccessful',
+ Identifier=myIdentifier,
+ URI='CHK@my-redirect-name'
+ )
+
+ self.assertHasNextEvent(
+ self.fcpClient.events.RequestCompleted,
+ consts.Message.ClientPut,
+ ('FcRequestStatus', consts.RequestStatus.Success |
+ consts.RequestStatus.RemovedFromQueue |
+ consts.RequestStatus.Completed
+ ),
+ )
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failIf(requestsAll)
+
+
+ def testCHKPutFile_Failure(self):
+ # request a arbitrary file
+ myIdentifier = self.fcpClient.chkPutFile(
+ 'myFile.txt'
+ )
+ myRequest = self.fcpClient.getRequest(myIdentifier)
+ requestsAll = self.fcpClient.getRequests()
+
+ self.assertHasNextMessage(consts.Message.ClientPut)
+ self.failUnless(myIdentifier in requestsAll)
+
+ self.sendResponseMessage(
+ 'PutFailed',
+ Identifier=myIdentifier,
+ Code='5', # rout not found
+ )
+
+ self.assertHasNextEvent(
+ self.fcpClient.events.RequestFailed,
+ consts.Message.ClientPut,
+ ('FcRequestStatus', consts.RequestStatus.Error |
+ consts.RequestStatus.RemovedFromQueue |
+ consts.RequestStatus.Completed
+ ),
+ )
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failIf(requestsAll)
+
+
+
+ def testCHKPutMultiple_Success(self):
+
+ items = [
+ {
+ 'FcRequestType': consts.RequestType.PutData,
+ 'Data': '12345',
+ 'Name': 'myItem0',
+ },
+ {
+ 'FcRequestType': consts.RequestType.PutFile,
+ 'Filename': 'myFile.txt',
+ 'Name': 'myItem1',
+ },
+ {
+ 'FcRequestType': consts.RequestType.PutRedirect,
+ 'TargetURI': 'CHK@123456789',
+ 'Name': 'myItem2',
+ },
+ {
+ 'FcRequestType': consts.RequestType.PutData,
+ 'Data': '67890',
+ 'Name': 'myItem3',
+ },
+ ]
+
+ # request a arbitrary file
+ myIdentifier = self.fcpClient.chkPutMultiple(
+ items
+ )
+ myRequest = self.fcpClient.getRequest(myIdentifier)
+ requestsAll = self.fcpClient.getRequests()
+
+ msg = self.assertHasNextMessage(
+ consts.Message.ClientPutComplexDir,
+ ('Files.0.Name', 'myItem0'),
+ ('Files.0.UploadFrom', 'direct'),
+ ('Files.0.DataLength', 5),
+
+ ('Files.1.Name', 'myItem1'),
+ ('Files.1.UploadFrom', 'disk'),
+ ('Files.1.Filename', 'myFile.txt'),
+
+ ('Files.2.Name', 'myItem2'),
+ ('Files.2.UploadFrom', 'redirect'),
+ ('Files.2.TargetURI', 'CHK@123456789'),
+
+ ('Files.3.Name', 'myItem3'),
+ ('Files.3.UploadFrom', 'direct'),
+ ('Files.3.DataLength', 5),
+
+ data='1234567890'
+ )
+
+ #for k, v in sorted(msg.params.items()):
+ # print k, v
+
+ self.failUnless(myIdentifier in requestsAll)
+
+ self.sendResponseMessage(
+ 'PutSuccessful',
+ Identifier=myIdentifier,
+ URI='CHK@my-redirect-name'
+ )
+
+ self.assertHasNextEvent(
+ self.fcpClient.events.RequestCompleted,
+ consts.Message.ClientPutComplexDir,
+ ('FcRequestStatus', consts.RequestStatus.Success |
+ consts.RequestStatus.RemovedFromQueue |
+ consts.RequestStatus.Completed
+ ),
+ )
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failIf(requestsAll)
+
+
+ def testCHKPutMultiple_ItemErrors(self):
+
+
+ # upload directory is not allowed
+ items = [
+ {
+ 'FcRequestType': consts.RequestType.PutDir,
+ 'Data': '12345',
+ 'Name': 'myItem0',
+ },
+ ]
+ self.assertRaises(ValueError, self.fcpClient.chkPutMultiple, items)
+
+ #TODO: how to test required params?
+ # ...just some samples below
+
+ # no request type specified
+ items = [
+ {
+ #'FcRequestType': consts.RequestType.PutData,
+ 'Data': '12345',
+ 'Name': 'myItem0',
+ },
+ ]
+ self.assertRaises(ValueError, self.fcpClient.chkPutMultiple, items)
+
+ # param missing (we enforce all required parameters)
+ items = [
+ {
+ 'FcRequestType': consts.RequestType.PutData,
+ #'Data': '12345',
+ #'Name': 'myItem0',
+ },
+ ]
+ self.assertRaises(ValueError, self.fcpClient.chkPutMultiple, items)
+
+
+
+
+
#***********************************************************************************
#
#***********************************************************************************
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ju...@us...> - 2008-02-29 13:02:53
|
Revision: 301
http://fclient.svn.sourceforge.net/fclient/?rev=301&view=rev
Author: jurner
Date: 2008-02-29 05:02:56 -0800 (Fri, 29 Feb 2008)
Log Message:
-----------
added some unittests for resendRequest()
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-02-29 13:02:31 UTC (rev 300)
+++ trunk/sandbox/fcp2/test_fcp/test_client.py 2008-02-29 13:02:56 UTC (rev 301)
@@ -1390,9 +1390,17 @@
self.assertRaises(ValueError, self.fcpClient.chkPutMultiple, items)
-
+ # some sloppy tests for other key types
+ def testSSKPutData(self):
+ myIdentifier = self.fcpClient.chkPutData(
+ 'arbitrary data'
+ )
+
+
+
+
#***********************************************************************************
#
#***********************************************************************************
@@ -2006,7 +2014,117 @@
#***********************************************************************************
#
#***********************************************************************************
-#TODO: class TestNodeAndPeers(BaseTestConnectedClient):
+#TODO: class TestNodeAndPeers(BaseTestConnectedClient):
+#***********************************************************************************
+#
+#***********************************************************************************
+#TODO: some tests not yet implemented
+class TestResendRequests(BaseTestClient):
+
+ def test_resend_CHK(self):
+ myKey = 'CHK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo'
+ msg = client.message.Message(
+ consts.Message.ClientPut,
+ URI=myKey,
+ Persistence=consts.Persistence.Connection,
+ )
+ self.fcpClient._registerRequest(msg, consts.RequestType.PutData)
+ myIdentifier = msg['Identifier']
+ requestsAll = self.fcpClient.getRequests()
+
+ newIdentifier = self.fcpClient.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 = client.message.Message(
+ consts.Message.ClientPut,
+ URI=myKey + '/foo',
+ Persistence=consts.Persistence.Connection,
+ )
+ self.fcpClient._registerRequest(msg, consts.RequestType.PutData)
+ msg['FcPrivateKey'] = myKey
+ myIdentifier = msg['Identifier']
+ requestsAll = self.fcpClient.getRequests()
+
+ newIdentifier = self.fcpClient.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 = client.message.Message(
+ consts.Message.ClientPut,
+ URI=myKey + '/foo',
+ Persistence=consts.Persistence.Connection,
+ )
+ self.fcpClient._registerRequest(msg, consts.RequestType.PutData)
+ msg['FcPrivateKey'] = myKey
+ myIdentifier = msg['Identifier']
+ requestsAll = self.fcpClient.getRequests()
+
+ newIdentifier = self.fcpClient.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 = client.message.Message(
+ consts.Message.ClientPut,
+ URI=myKey,
+ Persistence=consts.Persistence.Connection,
+ )
+ self.fcpClient._registerRequest(msg, consts.RequestType.PutData)
+ msg['FcPrivateKey'] = myKey
+ myIdentifier = msg['Identifier']
+ requestsAll = self.fcpClient.getRequests()
+
+ newIdentifier = self.fcpClient.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
#***********************************************************************************
#
@@ -2295,9 +2413,9 @@
TestClientPut,
TestRequests,
TestRestoreRequests,
+ TestResendRequests,
TestDDA,
TestCollisions,
-
TestPlugins,
TestGenerateKeypair,
TestSubscribeUSK,
@@ -2315,7 +2433,7 @@
if __name__ == "__main__":
test()
-
+test()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ju...@us...> - 2008-03-04 17:39:46
|
Revision: 309
http://fclient.svn.sourceforge.net/fclient/?rev=309&view=rev
Author: jurner
Date: 2008-03-04 09:39:46 -0800 (Tue, 04 Mar 2008)
Log Message:
-----------
fix for new key module
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-03-04 17:39:14 UTC (rev 308)
+++ trunk/sandbox/fcp2/test_fcp/test_client.py 2008-03-04 17:39:46 UTC (rev 309)
@@ -2069,7 +2069,7 @@
myKey = 'USK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA'
msg = client.message.Message(
consts.Message.ClientPut,
- URI=myKey + '/foo',
+ URI=myKey + '/foo/0',
Persistence=consts.Persistence.Connection,
)
self.fcpClient._registerRequest(msg, consts.RequestType.PutData)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ju...@us...> - 2008-03-06 12:00:07
|
Revision: 314
http://fclient.svn.sourceforge.net/fclient/?rev=314&view=rev
Author: jurner
Date: 2008-03-06 04:00:08 -0800 (Thu, 06 Mar 2008)
Log Message:
-----------
reworked test to use new iohandler
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-03-06 11:59:34 UTC (rev 313)
+++ trunk/sandbox/fcp2/test_fcp/test_client.py 2008-03-06 12:00:08 UTC (rev 314)
@@ -21,113 +21,32 @@
from fcp2.client import Client
from fcp2 import consts
+from fcp2 import iohandler
del hack
#<-- rel import hack
-from dummy_socket import DummySocket
+from dummy_socket import TestIO
#***********************************************************************************
#
#***********************************************************************************
DIR = os.path.dirname(os.path.abspath(__file__))
-TestAgainstNode = 0 # don't know how to test against node. Do not touch this!
+##TestAgainstNode = 0 # don't know how to test against node. Do not touch this!
-#***********************************************************************************
-#
-#***********************************************************************************
-class MyFcpClient(Client):
- """Customized client recording all messages it sends
- """
- def __init__(self, *args, **kwargs):
- Client.__init__(self, *args, **kwargs)
- self.test_messagesSend = []
-
- def sendMessageEx(self, msg):
- Client.sendMessageEx(self, msg)
- # deepcopy here, we need exact state
- msg = copy.deepcopy(msg)
- self.test_messagesSend.append(msg)
- def clearMessagesSend(self):
- self.test_messagesSend = []
-
#***********************************************************************************
#
-#***********************************************************************************
-class DummySocketModule(object):
- """Dummy socket module we inject into the client module for testing
-
- """
- AF_INET = socket.AF_INET
- SOCK_STREAM = socket.SOCK_STREAM
- error = socket.error
- socket = DummySocket()
-
- def __init__(self):
- self.lastSocket = None
-
- def __getattribute__(self, name):
- obj = object.__getattribute__(self, name)
- if name == 'socket':
- self.lastSocket = obj
- return obj
-
#***********************************************************************************
-#
-#***********************************************************************************
-class MySocketFactory(object):
- """Real and alive socket. Can be used to test against the running node. Not used currently
-
- Usage::
-
- DummySocketModule.socket = MySocketFactory()
-
- """
- def __init__(self, *args, **kwargs):
- self.socket = None
- self.closed = False
-
- def __call__(self, *args, **kwargs):
- self.socket = socket.socket(*args, **kwargs)
- return self
-
- def sendResponseMessage(self, *args, **kwargs):
- pass
-
- def connect(self, *args, **kwargs):
- return self.socket.connect(*args, **kwargs)
-
- def sendall(self, bytes):
- return self.socket.sendall(bytes)
-
- def settimeout(self, n):
- return self.socket.settimeout(n)
-
- def recv(self, n):
- return self.socket.recv(n)
-
- def close(self):
- self.closed = True
- result = self.socket.close()
- self.socket = None
- return result
-
-#***********************************************************************************
-#
-#***********************************************************************************
class BaseTestClient(unittest.TestCase):
"""Base class for all tests"""
- if TestAgainstNode:
- DummySocketModule.socket = MySocketFactory()
- fcpClient = MyFcpClient(
+ fcpClient = Client(
#debugVerbosity=Client.consts.DebugVerbosity.Debug
debugVerbosity=Client.consts.DebugVerbosity.Quiet
)
- # inject our customized socket module
- socketModule = DummySocketModule()
- client.socket = socketModule
+ fcpClient.ioHandler.setIOPrototype(TestIO)
+ #fcpClient.connect()
def __init__(self, *args, **kwargs):
@@ -147,14 +66,17 @@
"""Clears all messages send, requests registered and events triggered so far"""
# clean up the mess we eventaully left behinf
self.events = []
- self.fcpClient.clearMessagesSend()
+ if self.ioOpen():
+ self.fcpClient.ioHandler.io.readBuffer = ''
+ self.fcpClient.ioHandler.io.writeBuffer = ''
self.fcpClient._requests = {}
+
def connectClient(self):
"""Connects to the client"""
for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=20, timeout=0.1)):
- if n == 0:
+ if n == 1:
self.assertHasNextMessage(
consts.Message.ClientHello
)
@@ -261,11 +183,11 @@
@return: message if a message was received or None
"""
+ msg = self.getNextMessage()
if messageName is None:
- self.failIf(self.fcpClient.test_messagesSend)
+ self.failUnless(msg is None)
else:
- self.failUnless(self.fcpClient.test_messagesSend)
- msg = self.fcpClient.test_messagesSend.pop(0)
+ self.failIf(msg is None)
self.assertEqual(msg.name, messageName)
if param1 is not None:
param1, value1 = param1
@@ -334,11 +256,33 @@
def sendResponseMessage(self, messageName, data=None, callNext=True, **params):
"""Posts a message to the client"""
- self.socketModule.lastSocket.sendResponseMessage(messageName, data=data, **params)
- if not TestAgainstNode:
- if callNext:
- self.fcpClient.next()
+ msg = Client.message.Message(messageName, data=data, **params)
+ self.fcpClient.ioHandler.io.readBuffer += msg.toString()
+ if callNext:
+ self.fcpClient.next()
+
+ def getNextMessage(self):
+ # cheat a bit to get iohandler to read a message from writeBuffer
+ if self.ioOpen():
+ self.fcpClient.ioHandler.io.setReverseDirection(True)
+ try:
+ msg = self.fcpClient.ioHandler.readMessage()
+ except iohandler.IOTimeout:
+ return None
+ finally:
+ self.fcpClient.ioHandler.io.setReverseDirection(False)
+ return msg
+
+
+ def ioOpen(self):
+ return self.fcpClient.ioHandler.isOpen()
+
+
+ def getIO(self):
+ return self.fcpClient.ioHandler.io
+
+
def setUp(self):
# conect all events
self.events = [] # events received from the client
@@ -371,17 +315,12 @@
self.failUnless(self.socket.closed)
-
def XXXtestConnect(self):
nodeHello = self.fcpClient.connect(duration=10, timeout=0.1)
- self.failIf(nodeHello is None)
- return
+ self.failUnless(nodeHello is None)
+ #return
-
- nodeHello = self.fcpClient.connect(duration=0, timeout=0)
- self.failIf(nodeHello is not None)
-
- self.socketModule.lastSocket.sendResponseMessage(
+ self.sendResponseMessage(
'NodeHello',
FCPVersion='2.0',
Node='Fred',
@@ -395,37 +334,33 @@
NodeLanguage='en',
)
nodeHello = self.fcpClient.connect(duration=10, timeout=0.1)
- self.failIf(nodeHello is None)
+ print nodeHello
+ #self.failIf(nodeHello is None)
def test_0_IterIterConnect_RFailure(self):
- # we cannot test against node here
- if not TestAgainstNode:
-
- for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=1, timeout=0.1)):
- if n == 0:
- self.assertHasNextMessage(
- consts.Message.ClientHello
- )
-
- # check events the client triggered
- self.assertHasNextEvent(
- self.fcpClient.events.ClientDisconnected,
- consts.Message.ClientDisconnected,
- ('DisconnectReason', consts.DisconnectReason.ConnectingFailed),
+ for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=1, timeout=0.1)):
+ if n == 1:
+ self.assertHasNextMessage(
+ consts.Message.ClientHello
)
-
- self.assertHasNextEvent(None)
- self.assertHasNextMessage(None)
- self.failUnless(self.socketModule.lastSocket.closed)
-
- #self.fcpClient.connect(duration=20, timeout=0.1)
-
+ # check events the client triggered
+ self.assertHasNextEvent(
+ self.fcpClient.events.ClientDisconnected,
+ consts.Message.ClientDisconnected,
+ ('DisconnectReason', consts.DisconnectReason.ConnectingFailed),
+ )
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failIf(self.ioOpen())
+
+
def test_1_IterConnect_Success(self):
- for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=20, timeout=0.1)):
- if n == 0:
+ for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=1, timeout=0.1)):
+ if n == 1:
self.assertHasNextMessage(
consts.Message.ClientHello
)
@@ -460,7 +395,7 @@
class TestDisconnectReason(BaseTestClient):
def test_1000_DuplicateClientName(self):
-
+
self.sendResponseMessage('CloseConnectionDuplicateClientName')
msg = self.assertHasNextEvent(
self.fcpClient.events.ClientDisconnected,
@@ -470,8 +405,9 @@
self.failUnless('Param' in msg.params)
self.assertEqual(msg['Param'], None)
- self.failUnless(self.socketModule.lastSocket.closed)
+ self.failIf(self.ioOpen())
self.assertHasNextEvent(None)
+ #print self.fcpClient.test_messagesSend[0].name
self.assertHasNextMessage(None)
self.connectClient()
@@ -479,9 +415,9 @@
def test_1001_SocketDied_Receive(self):
- self.socketModule.lastSocket.close()
- self.fcpClient.next()
-
+ self.getIO().setBroken(True)
+ self.assertRaises(iohandler.IOBroken, self.fcpClient.next)
+
# check if ClientDisconnected events has been triggered
msg = self.assertHasNextEvent(
self.fcpClient.events.ClientDisconnected,
@@ -490,21 +426,21 @@
#('Param', ClientSocketDiedMessage) # can not test here
)
self.failUnless('Param' in msg.params)
- self.assertEqual(msg['Param'].name, consts.Message.ClientSocketDied)
+ # Param is now details of IOBroken exception, no idea how to test
+ #self.assertEqual(msg['Param'].name, consts.Message.ClientSocketDied)
- self.failUnless(self.socketModule.lastSocket.closed)
+ self.failIf(self.ioOpen())
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
-
self.connectClient()
def test_1002_SocketDied_Send(self):
- self.socketModule.lastSocket.close()
-
+ self.getIO().setBroken(True)
+
# send a test message
- self.assertRaises(socket.error, self.fcpClient.sendMessage, 'test' )
+ self.assertRaises(iohandler.IOBroken, self.fcpClient.sendMessage, 'test' )
# check if ClientDisconnected events has been triggered
msg = self.assertHasNextEvent(
@@ -514,9 +450,10 @@
#('Param', ClientSocketDiedMessage) # can not test here
)
self.failUnless('Param' in msg.params)
- self.assertEqual(msg['Param'].name, consts.Message.ClientSocketDied)
+ # Param is now details of IOBroken exception, no idea how to test
+ #self.assertEqual(msg['Param'].name, consts.Message.ClientSocketDied)
- self.failUnless(self.socketModule.lastSocket.closed)
+ self.failIf(self.ioOpen())
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
self.connectClient()
@@ -542,7 +479,7 @@
self.failUnless('Param' in msg.params)
self.assertEqual(msg['Param'], None)
- self.failUnless(self.socketModule.lastSocket.closed)
+ self.failIf(self.ioOpen())
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
self.connectClient()
@@ -551,33 +488,27 @@
def test_1004_VersionMismatch(self):
- # cheat a bit and reconnect client
- enum = self.fcpClient.iterConnect(duration=0.2, timeout=0.1)
- msg = enum.next()
- self.failIf(msg is not None)
-
- # check messages the client send message
- self.assertHasNextMessage(consts.Message.ClientHello)
-
- #NOTE: have to send directly via socket here (our sendResponseMessage
- # calls client.next() autkmatically)
- self.socketModule.lastSocket.sendResponseMessage(
- 'NodeHello',
- FCPVersion='0.0',
- Node='Fred',
- Version=str(self.fcpClient.ExpectedFcpVersion),
- Revision='0',
- Build='0',
- ExRevision='0',
- Testnet='false',
- CompressionCodecs='1',
- ConnectionIdentifier='any',
- NodeLanguage='en',
-
- callNext=False
- )
- msg = enum.next()
+ for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=1, timeout=0.1)):
+ if n == 1:
+ self.assertHasNextMessage(
+ consts.Message.ClientHello
+ )
+ self.sendResponseMessage(
+ 'NodeHello',
+ FCPVersion='0.0',
+ Node='Fred',
+ Version=str(self.fcpClient.ExpectedFcpVersion),
+ Revision='0',
+ Build='0',
+ ExRevision='0',
+ Testnet='false',
+ CompressionCodecs='1',
+ ConnectionIdentifier='any',
+ NodeLanguage='en',
+ callNext=False
+ )
+
# check events the client triggered
msg = self.assertHasNextEvent(
self.fcpClient.events.ClientDisconnected,
@@ -588,7 +519,7 @@
self.failUnless('Param' in msg.params)
self.assertEqual(msg['Param'].name, consts.Message.NodeHello)
- self.failUnless(self.socketModule.lastSocket.closed)
+ self.failIf(self.ioOpen())
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
self.connectClient()
@@ -2433,7 +2364,6 @@
if __name__ == "__main__":
test()
-test()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-03-07 09:54:16
|
Revision: 332
http://fclient.svn.sourceforge.net/fclient/?rev=332&view=rev
Author: jUrner
Date: 2008-03-07 01:54:21 -0800 (Fri, 07 Mar 2008)
Log Message:
-----------
adapt to Fc prefix has gone
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-03-07 09:54:15 UTC (rev 331)
+++ trunk/sandbox/fcp2/test_fcp/test_client.py 2008-03-07 09:54:21 UTC (rev 332)
@@ -543,7 +543,7 @@
self.failUnless(myIdentifier in requestsAll)
self.assertEqual(myIdentifier, myRequest['Identifier'])
- self.assertEqual(myRequest['FcRequestStatus'], consts.RequestStatus.Null)
+ self.assertEqual(myRequest['RequestStatus'], consts.RequestStatus.Null)
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
@@ -613,20 +613,20 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestCompleted,
consts.Message.ClientGet,
- ('FcRequestStatus', consts.RequestStatus.Success |
+ ('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
data=data
)
self.failIf(myIdentifier in requestsAll)
- self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed)
+ self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed)
# cheat a bit to test peristence == Forever (client should not remove request)
requestsAll[myIdentifier] =myRequest
myRequest['Persistence'] = consts.Persistence.Forever
- myRequest['FcRequestStatus'] &= ~(consts.RequestStatus.Success |
+ myRequest['RequestStatus'] &= ~(consts.RequestStatus.Success |
consts.RequestStatus.Completed |
consts.RequestStatus.RemovedFromQueue
)
@@ -642,11 +642,11 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestCompleted,
consts.Message.ClientGet,
- ('FcRequestStatus', consts.RequestStatus.Success | consts.RequestStatus.Completed),
+ ('RequestStatus', consts.RequestStatus.Success | consts.RequestStatus.Completed),
data=data
)
self.failUnless(myIdentifier in requestsAll)
- self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed)
+ self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed)
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
@@ -686,7 +686,7 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestFailed,
consts.Message.ClientGet,
- ('FcRequestStatus', consts.RequestStatus.Error |
+ ('RequestStatus', consts.RequestStatus.Error |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
@@ -700,7 +700,7 @@
requestsAll[myIdentifier] =myRequest
myRequest['Persistence'] = consts.Persistence.Forever
- myRequest['FcRequestStatus'] &= ~(consts.RequestStatus.Error |
+ myRequest['RequestStatus'] &= ~(consts.RequestStatus.Error |
consts.RequestStatus.Completed |
consts.RequestStatus.RemovedFromQueue
)
@@ -716,7 +716,7 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestFailed,
consts.Message.ClientGet,
- ('FcRequestStatus', consts.RequestStatus.Error | consts.RequestStatus.Completed),
+ ('RequestStatus', consts.RequestStatus.Error | consts.RequestStatus.Completed),
)
self.failUnless(myIdentifier in requestsAll)
self.assertHasNextEvent(None)
@@ -760,13 +760,13 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestCompleted,
consts.Message.ClientGet,
- ('FcRequestStatus', consts.RequestStatus.Success |
+ ('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
)
self.failIf(myIdentifier in requestsAll)
- self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed)
+ self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed)
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
@@ -804,7 +804,7 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestFailed,
consts.Message.ClientGet,
- ('FcRequestStatus', consts.RequestStatus.Error |
+ ('RequestStatus', consts.RequestStatus.Error |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
@@ -849,13 +849,13 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestCompleted,
consts.Message.ClientGet,
- ('FcRequestStatus', consts.RequestStatus.Success |
+ ('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
)
self.failIf(myIdentifier in requestsAll)
- self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed)
+ self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed)
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
@@ -892,12 +892,12 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestCompleted,
consts.Message.ClientGet,
- ('FcRequestStatus', consts.RequestStatus.Success |
+ ('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
)
- self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed)
+ self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed)
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
@@ -934,12 +934,12 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestFailed,
consts.Message.ClientGet,
- ('FcRequestStatus', consts.RequestStatus.Error |
+ ('RequestStatus', consts.RequestStatus.Error |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
)
- self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed)
+ self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed)
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
@@ -976,7 +976,7 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestCompleted,
consts.Message.ClientPut,
- ('FcRequestStatus', consts.RequestStatus.Success |
+ ('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
@@ -1008,7 +1008,7 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestFailed,
consts.Message.ClientPut,
- ('FcRequestStatus', consts.RequestStatus.Error |
+ ('RequestStatus', consts.RequestStatus.Error |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
@@ -1039,7 +1039,7 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestCompleted,
consts.Message.ClientPut,
- ('FcRequestStatus', consts.RequestStatus.Success |
+ ('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
@@ -1070,7 +1070,7 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestFailed,
consts.Message.ClientPut,
- ('FcRequestStatus', consts.RequestStatus.Error |
+ ('RequestStatus', consts.RequestStatus.Error |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
@@ -1101,7 +1101,7 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestCompleted,
consts.Message.ClientPutDiskDir,
- ('FcRequestStatus', consts.RequestStatus.Success |
+ ('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
@@ -1132,7 +1132,7 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestFailed,
consts.Message.ClientPutDiskDir,
- ('FcRequestStatus', consts.RequestStatus.Error |
+ ('RequestStatus', consts.RequestStatus.Error |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
@@ -1163,7 +1163,7 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestCompleted,
consts.Message.ClientPut,
- ('FcRequestStatus', consts.RequestStatus.Success |
+ ('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
@@ -1194,7 +1194,7 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestFailed,
consts.Message.ClientPut,
- ('FcRequestStatus', consts.RequestStatus.Error |
+ ('RequestStatus', consts.RequestStatus.Error |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
@@ -1210,22 +1210,22 @@
items = [
{
- 'FcRequestType': consts.RequestType.PutData,
+ 'RequestType': consts.RequestType.PutData,
'Data': '12345',
'Name': 'myItem0',
},
{
- 'FcRequestType': consts.RequestType.PutFile,
+ 'RequestType': consts.RequestType.PutFile,
'Filename': 'myFile.txt',
'Name': 'myItem1',
},
{
- 'FcRequestType': consts.RequestType.PutRedirect,
+ 'RequestType': consts.RequestType.PutRedirect,
'TargetURI': 'CHK@123456789',
'Name': 'myItem2',
},
{
- 'FcRequestType': consts.RequestType.PutData,
+ 'RequestType': consts.RequestType.PutData,
'Data': '67890',
'Name': 'myItem3',
},
@@ -1273,7 +1273,7 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestCompleted,
consts.Message.ClientPutComplexDir,
- ('FcRequestStatus', consts.RequestStatus.Success |
+ ('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
@@ -1290,7 +1290,7 @@
# upload directory is not allowed
items = [
{
- 'FcRequestType': consts.RequestType.PutDir,
+ 'RequestType': consts.RequestType.PutDir,
'Data': '12345',
'Name': 'myItem0',
},
@@ -1303,7 +1303,7 @@
# no request type specified
items = [
{
- #'FcRequestType': consts.RequestType.PutData,
+ #'RequestType': consts.RequestType.PutData,
'Data': '12345',
'Name': 'myItem0',
},
@@ -1313,7 +1313,7 @@
# param missing (we enforce all required parameters)
items = [
{
- 'FcRequestType': consts.RequestType.PutData,
+ 'RequestType': consts.RequestType.PutData,
#'Data': '12345',
#'Name': 'myItem0',
},
@@ -1372,9 +1372,9 @@
)
self.assertHasNextEvent(self.fcpClient.events.RequestModified)
- self.failUnless(consts.RequestModified.PersistentUserData in myRequest['FcModified'])
- self.failUnless(consts.RequestModified.PriorityClass in myRequest['FcModified'])
- self.assertEqual('bar', myRequest['FcPersistentUserData'])
+ self.failUnless(consts.RequestModified.PersistentUserData in myRequest['Modified'])
+ self.failUnless(consts.RequestModified.PriorityClass in myRequest['Modified'])
+ self.assertEqual('bar', myRequest['PersistentUserData'])
self.assertEqual(consts.Priority.High, myRequest['PriorityClass'])
self.assertHasNextEvent(None)
@@ -1420,9 +1420,9 @@
self.assertHasNextEvent(self.fcpClient.events.RequestModified)
- self.failUnless(consts.RequestModified.PersistentUserData in myRequest['FcModified'])
- #self.failUnless(consts.RequestModified.PriorityClass in myRequest['FcModified'])
- self.assertEqual('bar', myRequest['FcPersistentUserData'])
+ self.failUnless(consts.RequestModified.PersistentUserData in myRequest['Modified'])
+ #self.failUnless(consts.RequestModified.PriorityClass in myRequest['Modified'])
+ self.assertEqual('bar', myRequest['PersistentUserData'])
#self.assertEqual(consts.Priority.High, myRequest['PriorityClass'])
self.assertHasNextEvent(None)
@@ -1458,7 +1458,7 @@
self.fcpClient.removeRequest(myIdentifier)
# of our request should be removed emidiately,
- self.assertEqual(myRequest['FcRequestStatus'], consts.RequestStatus.Removed |
+ self.assertEqual(myRequest['RequestStatus'], consts.RequestStatus.Removed |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
)
@@ -1468,7 +1468,7 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestRemoved,
consts.Message.ClientGet,
- ('FcRequestStatus', consts.RequestStatus.Removed |
+ ('RequestStatus', consts.RequestStatus.Removed |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
@@ -1509,7 +1509,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.Removed | consts.RequestStatus.Completed)
+ self.assertEqual(myRequest['RequestStatus'], consts.RequestStatus.Removed | consts.RequestStatus.Completed)
self.failUnless(myIdentifier in self.fcpClient.getRequests())
# client schould send a RemovePersistentRequest
@@ -1522,12 +1522,12 @@
)
# now the request should have been removed
- self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.RemovedFromQueue)
- self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed)
+ self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.RemovedFromQueue)
+ self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed)
self.assertHasNextEvent(
self.fcpClient.events.RequestRemoved,
consts.Message.ClientGet,
- ('FcRequestStatus', consts.RequestStatus.Removed |
+ ('RequestStatus', consts.RequestStatus.Removed |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
@@ -1557,7 +1557,7 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestRemoved,
consts.Message.ClientGet,
- ('FcRequestStatus', consts.RequestStatus.Removed |
+ ('RequestStatus', consts.RequestStatus.Removed |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
@@ -1599,7 +1599,7 @@
self.assertHasNextEvent(
self.fcpClient.events.RequestRemoved,
consts.Message.ClientGet,
- ('FcRequestStatus', consts.RequestStatus.Removed |
+ ('RequestStatus', consts.RequestStatus.Removed |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
@@ -1684,7 +1684,7 @@
self.fcpClient.events.RequestRestored,
consts.Message.ClientGet,
('Identifier', myIdentifier),
- ('FcRequestStatus', consts.RequestStatus.Restored), # no RequestStatus.Pending flag should be set here
+ ('RequestStatus', consts.RequestStatus.Restored), # no RequestStatus.Pending flag should be set here
)
self.failUnless(myIdentifier in requestsAll)
@@ -1832,8 +1832,8 @@
consts.Message.ClientGet,
)
- self.failUnless(consts.RequestModified.Identifier in msg['FcModified'])
- oldIdentifier = msg['FcModified'][consts.RequestModified.Identifier]
+ self.failUnless(consts.RequestModified.Identifier in msg['Modified'])
+ oldIdentifier = msg['Modified'][consts.RequestModified.Identifier]
newIdentifier = msg['Identifier']
self.assertEqual(oldIdentifier, myIdentifier)
self.assertNotEqual(newIdentifier, myIdentifier)
@@ -1880,12 +1880,12 @@
consts.Message.ClientGet
)
- self.failUnless(consts.RequestModified.Filename in msg['FcModified'])
- self.assertEqual(msg['FcModified'][consts.RequestModified.Filename], fpath)
+ self.failUnless(consts.RequestModified.Filename in msg['Modified'])
+ self.assertEqual(msg['Modified'][consts.RequestModified.Filename], fpath)
self.assertNotEqual(msg['Filename'], fpath)
# check flags
- filenameCollision = msg['FcFilenameCollision']
+ filenameCollision = msg['FilenameCollision']
self.assertEqual(
filenameCollision & consts.FilenameCollision.MaskHandle,
consts.FilenameCollision.HandleRename
@@ -1981,7 +1981,7 @@
Persistence=consts.Persistence.Connection,
)
self.fcpClient._registerRequest(msg, consts.RequestType.PutData)
- msg['FcPrivateKey'] = myKey
+ msg['PrivateKey'] = myKey
myIdentifier = msg['Identifier']
requestsAll = self.fcpClient.getRequests()
@@ -2004,7 +2004,7 @@
Persistence=consts.Persistence.Connection,
)
self.fcpClient._registerRequest(msg, consts.RequestType.PutData)
- msg['FcPrivateKey'] = myKey
+ msg['PrivateKey'] = myKey
myIdentifier = msg['Identifier']
requestsAll = self.fcpClient.getRequests()
@@ -2026,7 +2026,7 @@
Persistence=consts.Persistence.Connection,
)
self.fcpClient._registerRequest(msg, consts.RequestType.PutData)
- msg['FcPrivateKey'] = myKey
+ msg['PrivateKey'] = myKey
myIdentifier = msg['Identifier']
requestsAll = self.fcpClient.getRequests()
@@ -2087,14 +2087,14 @@
consts.Message.GetPluginInfo,
('Identifier', myIdentifier),
('PluginName', 'hi there'),
- ('FcRequestStatus', consts.RequestStatus.Success |
+ ('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
)
self.failIf(myIdentifier in requestsAll)
- self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed)
+ self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed)
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
@@ -2126,14 +2126,14 @@
consts.Message.GetPluginInfo,
#('PluginName', 'hi there'),
('Identifier', myIdentifier),
- ('FcRequestStatus', consts.RequestStatus.Error |
+ ('RequestStatus', consts.RequestStatus.Error |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
)
self.failIf(myIdentifier in requestsAll)
- self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed)
+ self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed)
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
@@ -2167,16 +2167,16 @@
consts.Message.FCPPluginMessage,
('PluginName', 'hi there'),
('Identifier', myIdentifier),
- ('FcRequestStatus', consts.RequestStatus.Success |
+ ('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
)
- reply = msg['FcPluginReply']
+ reply = msg['PluginReply']
self.failUnless(reply.params.get('baz', None) == '12345')
self.failIf(myIdentifier in requestsAll)
- self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed)
+ self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed)
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
@@ -2208,14 +2208,14 @@
consts.Message.FCPPluginMessage,
#('PluginName', 'hi there'),
('Identifier', myIdentifier),
- ('FcRequestStatus', consts.RequestStatus.Error |
+ ('RequestStatus', consts.RequestStatus.Error |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
)
self.failIf(myIdentifier in requestsAll)
- self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed)
+ self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed)
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
@@ -2247,15 +2247,15 @@
self.fcpClient.events.KeypairGenerated,
consts.Message.GenerateSSK,
('Identifier', myIdentifier),
- ('FcPublicKey','SSK@public'),
- ('FcPrivateKey','SSK@private'),
- ('FcRequestStatus', consts.RequestStatus.Success |
+ ('PublicKey','SSK@public'),
+ ('PrivateKey','SSK@private'),
+ ('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
)
self.failIf(myIdentifier in requestsAll)
- self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed)
+ self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed)
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
@@ -2279,15 +2279,15 @@
self.fcpClient.events.KeypairGenerated,
consts.Message.GenerateSSK,
('Identifier', myIdentifier),
- ('FcPublicKey','USK@public'),
- ('FcPrivateKey','USK@private'),
- ('FcRequestStatus', consts.RequestStatus.Success |
+ ('PublicKey','USK@public'),
+ ('PrivateKey','USK@private'),
+ ('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
),
)
self.failIf(myIdentifier in requestsAll)
- self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed)
+ self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed)
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
@@ -2307,7 +2307,7 @@
requestsAll = self.fcpClient.getRequests()
self.failUnless(myIdentifier in requestsAll)
- self.failUnless(myRequest['FcRequestStatus'] & consts.RequestStatus.Completed)
+ self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed)
self.assertHasNextMessage(consts.Message.SubscribeUSK)
self.sendResponseMessage(
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-03-08 11:12:22
|
Revision: 339
http://fclient.svn.sourceforge.net/fclient/?rev=339&view=rev
Author: jUrner
Date: 2008-03-08 03:12:22 -0800 (Sat, 08 Mar 2008)
Log Message:
-----------
adapt to new message handling
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-03-08 11:11:57 UTC (rev 338)
+++ trunk/sandbox/fcp2/test_fcp/test_client.py 2008-03-08 11:12:22 UTC (rev 339)
@@ -1,4 +1,4 @@
-"""Unittests for fcp2_0_client"""
+"""Unittests for fcp2.client.py"""
from __future__ import with_statement
import os, sys
@@ -22,6 +22,7 @@
from fcp2 import consts
from fcp2 import iohandler
+from fcp2 import message
del hack
#<-- rel import hack
@@ -256,7 +257,11 @@
def sendResponseMessage(self, messageName, data=None, callNext=True, **params):
"""Posts a message to the client"""
- msg = Client.message.Message(messageName, data=data, **params)
+ if messageName in message.MessagesAll:
+ msgClass = message.MessagesAll[messageName]
+ else:
+ msgClass = message.newMessageType(messageName)
+ msg = msgClass(data=data, **params)
self.fcpClient.ioHandler.io.readBuffer += msg.toString()
if callNext:
self.fcpClient.next()
@@ -440,7 +445,7 @@
self.getIO().setBroken(True)
# send a test message
- self.assertRaises(iohandler.IOBroken, self.fcpClient.sendMessage, 'test' )
+ self.assertRaises(iohandler.IOBroken, self.fcpClient.sendMessage, message.newMessageType('test')())
# check if ClientDisconnected events has been triggered
msg = self.assertHasNextEvent(
@@ -476,6 +481,7 @@
('DisconnectReason', consts.DisconnectReason.Shutdown)
#('Param', NodeHelloMessage) # can not test here
)
+
self.failUnless('Param' in msg.params)
self.assertEqual(msg['Param'], None)
@@ -1954,8 +1960,7 @@
def test_resend_CHK(self):
myKey = 'CHK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo'
- msg = client.message.Message(
- consts.Message.ClientPut,
+ msg = message.ClientPut(
URI=myKey,
Persistence=consts.Persistence.Connection,
)
@@ -1975,8 +1980,7 @@
def test_resend_SSK(self):
myKey = 'SSK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA'
- msg = client.message.Message(
- consts.Message.ClientPut,
+ msg = message.ClientPut(
URI=myKey + '/foo',
Persistence=consts.Persistence.Connection,
)
@@ -1998,8 +2002,7 @@
def test_resend_USK(self):
myKey = 'USK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA'
- msg = client.message.Message(
- consts.Message.ClientPut,
+ msg = message.ClientPut(
URI=myKey + '/foo/0',
Persistence=consts.Persistence.Connection,
)
@@ -2020,8 +2023,7 @@
def test_resend_KSK(self):
myKey = 'KSK@abs'
- msg = client.message.Message(
- consts.Message.ClientPut,
+ msg = message.ClientPut(
URI=myKey,
Persistence=consts.Persistence.Connection,
)
@@ -2143,11 +2145,11 @@
def test_8002_SendPluginMessage_Success(self):
- myIdentifier = self.fcpClient.sendPluginMessage('hi there', {'foo': "bar"})
- myRequest = self.fcpClient.getRequest(myIdentifier)
+ myIdentifier = '123456789'
+ myRequest = self.fcpClient.sendPluginMessage('hi there', myIdentifier, {'foo': "bar"})
requestsAll = self.fcpClient.getRequests()
- self.failUnless(myIdentifier in requestsAll)
+ self.failIf(myIdentifier in requestsAll)
self.assertHasNextMessage(
consts.Message.FCPPluginMessage,
('Identifier', myIdentifier),
@@ -2164,19 +2166,11 @@
msg = self.assertHasNextEvent(
self.fcpClient.events.PluginMessage,
- consts.Message.FCPPluginMessage,
+ consts.Message.FCPPluginReply,
('PluginName', 'hi there'),
('Identifier', myIdentifier),
- ('RequestStatus', consts.RequestStatus.Success |
- consts.RequestStatus.RemovedFromQueue |
- consts.RequestStatus.Completed
- ),
+ ('baz', '12345'),
)
- reply = msg['PluginReply']
- self.failUnless(reply.params.get('baz', None) == '12345')
-
- self.failIf(myIdentifier in requestsAll)
- self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed)
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
@@ -2185,11 +2179,11 @@
def test_8003_GetSendPluginMessage_Failure(self):
- myIdentifier = self.fcpClient.sendPluginMessage('hi there', {'foo': "bar"})
- myRequest = self.fcpClient.getRequest(myIdentifier)
+ myIdentifier = '1234567889'
+ myRequest = self.fcpClient.sendPluginMessage('hi there', myIdentifier, {'foo': "bar"})
requestsAll = self.fcpClient.getRequests()
- self.failUnless(myIdentifier in requestsAll)
+ self.failIf(myIdentifier in requestsAll)
self.assertHasNextMessage(
consts.Message.FCPPluginMessage,
('Identifier', myIdentifier),
@@ -2204,24 +2198,49 @@
)
msg = self.assertHasNextEvent(
- self.fcpClient.events.PluginMessageFailed,
- consts.Message.FCPPluginMessage,
- #('PluginName', 'hi there'),
+ self.fcpClient.events.ProtocolError,
+ consts.Message.ProtocolError,
('Identifier', myIdentifier),
- ('RequestStatus', consts.RequestStatus.Error |
- consts.RequestStatus.RemovedFromQueue |
- consts.RequestStatus.Completed
- ),
)
self.failIf(myIdentifier in requestsAll)
- self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed)
-
+
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
self.failIf(requestsAll)
+ def test_8003_GetSendPluginMessage_Identifiercollision(self):
+ myIdentifier = '1234567889'
+ myRequest = self.fcpClient.sendPluginMessage('hi there', myIdentifier, {'foo': "bar"})
+ requestsAll = self.fcpClient.getRequests()
+
+ self.failIf(myIdentifier in requestsAll)
+ self.assertHasNextMessage(
+ consts.Message.FCPPluginMessage,
+ ('Identifier', myIdentifier),
+ ('PluginName', 'hi there'),
+ ('foo', 'bar'),
+ )
+
+ self.sendResponseMessage(
+ consts.Message.IdentifierCollision,
+ Identifier=myIdentifier,
+ )
+
+ msg = self.assertHasNextEvent(
+ self.fcpClient.events.IdentifierCollision,
+ consts.Message.IdentifierCollision,
+ ('Identifier', myIdentifier),
+ )
+
+ self.failIf(myIdentifier in requestsAll)
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failIf(requestsAll)
+
+
#***********************************************************************************
#TODO: class TestConfig(BaseTestConnectedClient):
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-03-09 12:56:42
|
Revision: 352
http://fclient.svn.sourceforge.net/fclient/?rev=352&view=rev
Author: jUrner
Date: 2008-03-09 05:56:43 -0700 (Sun, 09 Mar 2008)
Log Message:
-----------
rewrite in progress
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-03-09 12:56:27 UTC (rev 351)
+++ trunk/sandbox/fcp2/test_fcp/test_client.py 2008-03-09 12:56:43 UTC (rev 352)
@@ -47,9 +47,8 @@
)
fcpClient.ioHandler.setIOPrototype(DummyIO)
- #fcpClient.connect()
+
-
def __init__(self, *args, **kwargs):
unittest.TestCase.__init__(self, *args, **kwargs)
@@ -58,53 +57,54 @@
def _captureEventsFromClient(self, event, msg):
+ """Captures events the client send"""
# have to copy message here, to get exact state
msg = copy.deepcopy(msg)
self.events.append( (event, msg) )
-
- def clearClient(self):
- """Clears all messages send, requests registered and events triggered so far"""
- # clean up the mess we eventaully left behinf
- self.events = []
- if self.ioOpen():
- self.fcpClient.ioHandler.io.readBuffer = ''
- self.fcpClient.ioHandler.io.writeBuffer = ''
- self.fcpClient._requests = {}
-
-
def connectClient(self):
"""Connects to the client"""
- for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=20, timeout=0.1)):
- if n == 1:
- self.assertHasNextMessage(
- consts.Message.ClientHello
- )
+ for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=0.2, timeout=0.1)):
+ msg = self.getNextMessage()
+ if msg is not None:
+ self.failUnless(msg.name == 'ClientHello')
self.sendResponseMessage(
- 'NodeHello',
- FCPVersion='2.0',
- Node='Fred',
- Version=str(self.fcpClient.ExpectedFcpVersion),
- Revision='999999999999',
- Build='9999999999',
- ExRevision='9999999999',
- Testnet='false',
- CompressionCodecs='1',
- ConnectionIdentifier='any',
- NodeLanguage='en',
-
- callNext=False,
- )
-
- # check events the client triggered
+ 'NodeHello',
+ FCPVersion='2.0',
+ Build='9999999999',
+
+ Node='Fred',
+ Version=str(self.fcpClient.ExpectedFcpVersion),
+ Revision='999999999999',
+ ExRevision='9999999999',
+ Testnet='false',
+ CompressionCodecs='1',
+ ConnectionIdentifier='any',
+ NodeLanguage='en',
+
+ callNext=False,
+ )
+
self.assertHasNextEvent(
- self.fcpClient.events.ClientConnected,
- consts.Message.NodeHello,
- )
-
+ self.fcpClient.events.ClientConnected,
+ consts.Message.NodeHello,
+ )
self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failUnless(self.ioOpen())
+
+ def closeClient(self):
+ """Closes the client"""
+ self.fcpClient.close()
+ self.assertHasNextEvent(
+ self.fcpClient.events.ClientDisconnected,
+ consts.Message.ClientDisconnected,
+ ('DisconnectReason', consts.DisconnectReason.Close),
+ )
+
+
def assertHasNextEvent(self,
expectedEvent=None,
messageName=None,
@@ -256,7 +256,7 @@
return msg
def sendResponseMessage(self, messageName, data=None, callNext=True, **params):
- """Posts a message to the client"""
+ """Sends a message to the client"""
if messageName in message.MessagesAll:
msgClass = message.MessagesAll[messageName]
else:
@@ -267,7 +267,15 @@
self.fcpClient.next()
+ #NOTE: iohandler is buffered
+ # ..so be careful not to get messages you send
+ #
+ # 1. sendResponseMessage('blah')
+ # 2. getNextMessage()
+ # 3. >>> 'blah'
def getNextMessage(self):
+ """Returns the next message the client send"""
+
# cheat a bit to get iohandler to read a message from writeBuffer
if self.ioOpen():
self.fcpClient.ioHandler.io.setReverseDirection(True)
@@ -281,10 +289,12 @@
def ioOpen(self):
+ """Checks if the clients io is open"""
return self.fcpClient.ioHandler.isOpen()
def getIO(self):
+ """Returns the clients io"""
return self.fcpClient.ioHandler.io
@@ -300,7 +310,9 @@
event -= self._captureEventsFromClient
# clean up tmpfiles
for fpath in self.tmpfiles: os.remove(fpath)
- self.clearClient()
+ if self.fcpClient.isOpen():
+ self.fcpClient.close()
+
#***********************************************************************************
#
@@ -310,72 +322,221 @@
#***********************************************************************************
#
#***********************************************************************************
-class TestConnect(BaseTestClient):
+class Test_close(BaseTestClient):
+ def test_close(self):
+ self.fcpClient.close()
+ self.assertHasNextEvent(
+ self.fcpClient.events.ClientDisconnected,
+ consts.Message.ClientDisconnected,
+ ('DisconnectReason', consts.DisconnectReason.Close),
+ )
+
+
+#***********************************************************************************
+#
+#***********************************************************************************
+class Test_isOpen(BaseTestClient):
- def XXXtestClose(self):
- self.failIf(self.socket.closed)
+ def test_isOpen(self):
+ self.failIf(self.fcpClient.isOpen())
self.connectClient()
+ self.failUnless(self.fcpClient.isOpen())
+ self.closeClient()
+ self.failIf(self.fcpClient.isOpen())
+
+#***********************************************************************************
+#TODO: not idea how to test this
+#***********************************************************************************
+class Test_connect(BaseTestClient):
+ pass
+
+
+#***********************************************************************************
+#
+#***********************************************************************************
+class Test_iterConnect(BaseTestClient):
+
+ def test_iterConnect_success(self):
+ for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=0.2, timeout=0.1)):
+ msg = self.getNextMessage()
+ if msg is not None:
+ self.failUnless(msg.name == 'ClientHello')
+ self.sendResponseMessage(
+ 'NodeHello',
+ FCPVersion='2.0',
+ Node='Fred',
+ Version=str(self.fcpClient.ExpectedFcpVersion),
+ Revision='999999999999',
+ Build='9999999999',
+ ExRevision='9999999999',
+ Testnet='false',
+ CompressionCodecs='1',
+ ConnectionIdentifier='any',
+ NodeLanguage='en',
+
+ callNext=False,
+ )
+
+ self.assertHasNextEvent(
+ self.fcpClient.events.ClientConnected,
+ consts.Message.NodeHello,
+ )
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failUnless(self.ioOpen())
self.fcpClient.close()
- self.failUnless(self.socket.closed)
- def XXXtestConnect(self):
- nodeHello = self.fcpClient.connect(duration=10, timeout=0.1)
+ def test_iterConnect_ioRefusesConnection(self):
+ for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=0.2, timeout=0.1)):
+ self.getIO().setAllowConnect(False)
+
self.failUnless(nodeHello is None)
- #return
+ self.assertHasNextEvent(
+ self.fcpClient.events.ClientDisconnected,
+ consts.Message.ClientDisconnected,
+ ('DisconnectReason', consts.DisconnectReason.IOConnectFailed),
+ )
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failIf(self.ioOpen())
- self.sendResponseMessage(
- 'NodeHello',
- FCPVersion='2.0',
- Node='Fred',
- Version=str(self.fcpClient.ExpectedFcpVersion),
- Revision='999999999999',
- Build='9999999999',
- ExRevision='9999999999',
- Testnet='false',
- CompressionCodecs='1',
- ConnectionIdentifier='any',
- NodeLanguage='en',
+
+ def test_iterConnect_nodeHelloNeverArrives(self):
+ for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=0.2, timeout=0.1)):
+ pass
+
+ self.failUnless(nodeHello is None)
+ self.assertHasNextEvent(
+ self.fcpClient.events.ClientDisconnected,
+ consts.Message.ClientDisconnected,
+ ('DisconnectReason', consts.DisconnectReason.NoNodeHello),
)
- nodeHello = self.fcpClient.connect(duration=10, timeout=0.1)
- print nodeHello
- #self.failIf(nodeHello is None)
-
-
- def test_0_IterIterConnect_RFailure(self):
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failIf(self.ioOpen())
- for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=1, timeout=0.1)):
- if n == 1:
- self.assertHasNextMessage(
- consts.Message.ClientHello
+
+ def test_iterConnect_socketDies(self):
+ enum = self.fcpClient.iterConnect(duration=0.2, timeout=0.1)
+ errorRaised = False
+ while True:
+ try:
+ enum.next()
+ except StopIteration:
+ break
+ except iohandler.IOBroken, d:
+ errorRaised = True
+ self.assertHasNextEvent(
+ self.fcpClient.events.ClientDisconnected,
+ consts.Message.ClientDisconnected,
+ ('DisconnectReason', consts.DisconnectReason.ConnectionDied),
+ #('Param', None),
)
+ break
+ self.getIO().setBroken(True)
+
+ self.failUnless(errorRaised)
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failIf(self.ioOpen())
- # check events the client triggered
+
+ def test_iterIterConnect_unknownNodehello(self):
+
+ for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=0.2, timeout=0.1)):
+ self.sendResponseMessage(
+ 'i-am-invalid',
+ callNext=False,
+ )
+
+ self.failUnless(nodeHello is None)
self.assertHasNextEvent(
self.fcpClient.events.ClientDisconnected,
consts.Message.ClientDisconnected,
- ('DisconnectReason', consts.DisconnectReason.ConnectingFailed),
+ ('DisconnectReason', consts.DisconnectReason.UnknownNodeHello),
)
-
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
self.failIf(self.ioOpen())
+
+ def test_iterIterConnect_connect(self):
+ for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=0.2, timeout=0.1)):
+ self.sendResponseMessage(
+ 'NodeHello',
+ FCPVersion='2.0',
+ Build='9999999999',
+
+ Node='Fred',
+ Version=str(self.fcpClient.ExpectedFcpVersion),
+ Revision='999999999999',
+ ExRevision='9999999999',
+ Testnet='false',
+ CompressionCodecs='1',
+ ConnectionIdentifier='any',
+ NodeLanguage='en',
+
+ callNext=False,
+ )
- def test_1_IterConnect_Success(self):
- for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=1, timeout=0.1)):
- if n == 1:
- self.assertHasNextMessage(
- consts.Message.ClientHello
- )
- self.sendResponseMessage(
+ self.assertHasNextEvent(
+ self.fcpClient.events.ClientConnected,
+ consts.Message.NodeHello,
+ )
+ self.assertHasNextEvent(None)
+ #self.assertHasNextMessage(None) # due to our message hacking, NodeHello is still in io
+ self.failUnless(self.ioOpen())
+ self.closeClient()
+
+
+ def test_iterIterConnect_reconnect(self):
+ self.connectClient()
+
+ for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=0.2, timeout=0.1)):
+ self.sendResponseMessage(
'NodeHello',
FCPVersion='2.0',
+ Build='9999999999',
+
Node='Fred',
Version=str(self.fcpClient.ExpectedFcpVersion),
Revision='999999999999',
+ ExRevision='9999999999',
+ Testnet='false',
+ CompressionCodecs='1',
+ ConnectionIdentifier='any',
+ NodeLanguage='en',
+
+ callNext=False,
+ )
+
+ self.assertHasNextEvent(
+ self.fcpClient.events.ClientDisconnected,
+ consts.Message.ClientDisconnected,
+ ('DisconnectReason', consts.DisconnectReason.Reconnect)
+ )
+ self.assertHasNextEvent(
+ self.fcpClient.events.ClientConnected,
+ consts.Message.NodeHello,
+ )
+ self.assertHasNextEvent(None)
+ #self.assertHasNextMessage(None) # due to our message hacking, NodeHello is still in io
+ self.failUnless(self.ioOpen())
+ self.closeClient()
+
+
+ def test_iterIterConnect_VersionMissmatch_FCPVersion(self):
+ for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=0.2, timeout=0.1)):
+ self.sendResponseMessage(
+ 'NodeHello',
+ FCPVersion='0.0',
Build='9999999999',
+
+ Node='Fred',
+ Version=str(self.fcpClient.ExpectedFcpVersion),
+ Revision='999999999999',
ExRevision='9999999999',
Testnet='false',
CompressionCodecs='1',
@@ -384,16 +545,99 @@
callNext=False,
)
+
+ self.assertHasNextEvent(
+ self.fcpClient.events.ClientDisconnected,
+ consts.Message.ClientDisconnected,
+ ('DisconnectReason', consts.DisconnectReason.VersionMissmatch)
+ )
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failIf(self.ioOpen())
+ self.closeClient()
+
+
+ def test_iterIterConnect_VersionMissmatch_Build(self):
+ for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=0.2, timeout=0.1)):
+ self.sendResponseMessage(
+ 'NodeHello',
+ FCPVersion='2.0',
+ Build='0',
+
+ Node='Fred',
+ Version=str(self.fcpClient.ExpectedFcpVersion),
+ Revision='999999999999',
+ ExRevision='9999999999',
+ Testnet='false',
+ CompressionCodecs='1',
+ ConnectionIdentifier='any',
+ NodeLanguage='en',
+
+ callNext=False,
+ )
+
+ self.assertHasNextEvent(
+ self.fcpClient.events.ClientDisconnected,
+ consts.Message.ClientDisconnected,
+ ('DisconnectReason', consts.DisconnectReason.VersionMissmatch)
+ )
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failIf(self.ioOpen())
+ self.closeClient()
+
+
+#***********************************************************************************
+#
+#***********************************************************************************
+class Test_CloseConnectionDuplicateClientName(BaseTestClient):
+
+ def test_CloseConnectionDuplicateClientName(self):
+ self.connectClient()
+ self.sendResponseMessage(
+ 'CloseConnectionDuplicateClientName',
+ )
- # check events the client triggered
self.assertHasNextEvent(
- self.fcpClient.events.ClientConnected,
- consts.Message.NodeHello,
+ self.fcpClient.events.ClientDisconnected,
+ consts.Message.ClientDisconnected,
+ ('DisconnectReason', consts.DisconnectReason.DuplicateClientName)
+ )
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failIf(self.ioOpen())
+ self.closeClient()
+
+#***********************************************************************************
+#
+#***********************************************************************************
+class Test_closeNode(BaseTestClient):
+
+ def test_closeNode(self):
+ self.connectClient()
+ self.fcpClient.closeNode()
+ self.assertHasNextMessage('Shutdown')
+ self.sendResponseMessage(
+ 'ProtocolError',
+ Code='18'
)
+ self.assertHasNextEvent(
+ self.fcpClient.events.ClientDisconnected,
+ consts.Message.ClientDisconnected,
+ ('DisconnectReason', consts.DisconnectReason.NodeClosing)
+ )
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
-
+ self.failIf(self.ioOpen())
+ self.closeClient()
+
+
+###################################################
+###################################################
+###################################################
+
+
#***********************************************************************************
#
#***********************************************************************************
@@ -1624,14 +1868,15 @@
#TODO: testRestoreClientPut and friends
class TestRestoreRequests(BaseTestClient):
- def test_4000_RestorePersistentGet_InvalidIdentifier(self):
+ def test_4000_RestorePersistentGet_InvalidClientToken(self):
# throw an invalid PersistentRequest at the client
- myIdentifier = 'true-invalid-request-identifier'
+ myIdentifier = '123456789'
self.sendResponseMessage(
'PersistentGet',
Identifier=myIdentifier,
Global='false',
+ ClientToken='i-am-invalid',
ReturnType='disk',
Verbosity='1',
PersistenceType='forever',
@@ -2357,18 +2602,23 @@
def suite():
testCases = (
- TestConnect,
- TestDisconnectReason,
- TestClientGet,
- TestClientPut,
- TestRequests,
- TestRestoreRequests,
- TestResendRequests,
- TestDDA,
- TestCollisions,
- TestPlugins,
- TestGenerateKeypair,
- TestSubscribeUSK,
+ Test_close,
+ Test_isOpen,
+ Test_connect,
+ Test_iterConnect,
+ Test_CloseConnectionDuplicateClientName,
+ Test_closeNode,
+ #TestDisconnectReason,
+ #TestClientGet,
+ #TestClientPut,
+ #TestRequests,
+ #TestRestoreRequests,
+ #TestResendRequests,
+ #TestDDA,
+ #TestCollisions,
+ #TestPlugins,
+ #TestGenerateKeypair,
+ #TestSubscribeUSK,
)
suite = unittest.TestSuite()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-03-11 01:04:01
|
Revision: 362
http://fclient.svn.sourceforge.net/fclient/?rev=362&view=rev
Author: jUrner
Date: 2008-03-10 18:04:02 -0700 (Mon, 10 Mar 2008)
Log Message:
-----------
continued rewriting 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-03-11 01:03:34 UTC (rev 361)
+++ trunk/sandbox/fcp2/test_fcp/test_client.py 2008-03-11 01:04:02 UTC (rev 362)
@@ -41,12 +41,12 @@
class BaseTestClient(unittest.TestCase):
"""Base class for all tests"""
- fcpClient = Client(
+ client = Client(
#debugVerbosity=Client.consts.DebugVerbosity.Debug
debugVerbosity=Client.consts.DebugVerbosity.Quiet
)
- fcpClient.ioHandler.setIOPrototype(DummyIO)
+ client.ioHandler.setIOPrototype(DummyIO)
def __init__(self, *args, **kwargs):
@@ -65,7 +65,7 @@
def connectClient(self):
"""Connects to the client"""
- for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=0.2, timeout=0.1)):
+ for n, nodeHello in enumerate(self.client.iterConnect(duration=0.2, timeout=0.1)):
msg = self.getNextMessage()
if msg is not None:
self.failUnless(msg.name == 'ClientHello')
@@ -75,7 +75,7 @@
Build='9999999999',
Node='Fred',
- Version=str(self.fcpClient.ExpectedFcpVersion),
+ Version=str(self.client.ExpectedFcpVersion),
Revision='999999999999',
ExRevision='9999999999',
Testnet='false',
@@ -87,7 +87,7 @@
)
self.assertHasNextEvent(
- self.fcpClient.events.ClientConnected,
+ self.client.events.ClientConnected,
consts.Message.NodeHello,
)
self.assertHasNextEvent(None)
@@ -97,9 +97,9 @@
def closeClient(self):
"""Closes the client"""
- self.fcpClient.close()
+ self.client.close()
self.assertHasNextEvent(
- self.fcpClient.events.ClientDisconnected,
+ self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
('DisconnectReason', consts.DisconnectReason.Close),
)
@@ -262,9 +262,9 @@
else:
msgClass = message.newMessageType(messageName)
msg = msgClass(data=data, **params)
- self.fcpClient.ioHandler.io.readBuffer += msg.toString()
+ self.client.ioHandler.io.readBuffer += msg.toString()
if callNext:
- self.fcpClient.next()
+ self.client.next()
#NOTE: iohandler is buffered
@@ -278,40 +278,40 @@
# cheat a bit to get iohandler to read a message from writeBuffer
if self.ioOpen():
- self.fcpClient.ioHandler.io.setReverseDirection(True)
+ self.client.ioHandler.io.setReverseDirection(True)
try:
- msg = self.fcpClient.ioHandler.readMessage()
- except iohandler.IOTimeout:
+ msg = self.client.ioHandler.readMessage()
+ except self.client.ioHandler.IOTimeout:
return None
finally:
- self.fcpClient.ioHandler.io.setReverseDirection(False)
+ self.client.ioHandler.io.setReverseDirection(False)
return msg
def ioOpen(self):
"""Checks if the clients io is open"""
- return self.fcpClient.ioHandler.isOpen()
+ return self.client.ioHandler.isOpen()
def getIO(self):
"""Returns the clients io"""
- return self.fcpClient.ioHandler.io
+ return self.client.ioHandler.io
def setUp(self):
# conect all events
self.events = [] # events received from the client
- for event in self.fcpClient.events:
+ for event in self.client.events:
event += self._captureEventsFromClient
def tearDown(self):
# disconnect all events
- for event in self.fcpClient.events:
+ for event in self.client.events:
event -= self._captureEventsFromClient
# clean up tmpfiles
for fpath in self.tmpfiles: os.remove(fpath)
- if self.fcpClient.isOpen():
- self.fcpClient.close()
+ if self.client.isOpen():
+ self.client.close()
#***********************************************************************************
@@ -325,9 +325,9 @@
class Test_close(BaseTestClient):
def test_close(self):
- self.fcpClient.close()
+ self.client.close()
self.assertHasNextEvent(
- self.fcpClient.events.ClientDisconnected,
+ self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
('DisconnectReason', consts.DisconnectReason.Close),
)
@@ -339,11 +339,11 @@
class Test_isOpen(BaseTestClient):
def test_isOpen(self):
- self.failIf(self.fcpClient.isOpen())
+ self.failIf(self.client.isOpen())
self.connectClient()
- self.failUnless(self.fcpClient.isOpen())
+ self.failUnless(self.client.isOpen())
self.closeClient()
- self.failIf(self.fcpClient.isOpen())
+ self.failIf(self.client.isOpen())
#***********************************************************************************
#TODO: not idea how to test this
@@ -358,7 +358,7 @@
class Test_iterConnect(BaseTestClient):
def test_iterConnect_success(self):
- for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=0.2, timeout=0.1)):
+ for n, nodeHello in enumerate(self.client.iterConnect(duration=0.2, timeout=0.1)):
msg = self.getNextMessage()
if msg is not None:
self.failUnless(msg.name == 'ClientHello')
@@ -366,7 +366,7 @@
'NodeHello',
FCPVersion='2.0',
Node='Fred',
- Version=str(self.fcpClient.ExpectedFcpVersion),
+ Version=str(self.client.ExpectedFcpVersion),
Revision='999999999999',
Build='9999999999',
ExRevision='9999999999',
@@ -379,22 +379,22 @@
)
self.assertHasNextEvent(
- self.fcpClient.events.ClientConnected,
+ self.client.events.ClientConnected,
consts.Message.NodeHello,
)
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
self.failUnless(self.ioOpen())
- self.fcpClient.close()
+ self.client.close()
def test_iterConnect_ioRefusesConnection(self):
- for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=0.2, timeout=0.1)):
+ for n, nodeHello in enumerate(self.client.iterConnect(duration=0.2, timeout=0.1)):
self.getIO().setAllowConnect(False)
self.failUnless(nodeHello is None)
self.assertHasNextEvent(
- self.fcpClient.events.ClientDisconnected,
+ self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
('DisconnectReason', consts.DisconnectReason.IOConnectFailed),
)
@@ -404,12 +404,12 @@
def test_iterConnect_nodeHelloNeverArrives(self):
- for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=0.2, timeout=0.1)):
+ for n, nodeHello in enumerate(self.client.iterConnect(duration=0.2, timeout=0.1)):
pass
self.failUnless(nodeHello is None)
self.assertHasNextEvent(
- self.fcpClient.events.ClientDisconnected,
+ self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
('DisconnectReason', consts.DisconnectReason.NoNodeHello),
)
@@ -419,17 +419,17 @@
def test_iterConnect_socketDies(self):
- enum = self.fcpClient.iterConnect(duration=0.2, timeout=0.1)
+ enum = self.client.iterConnect(duration=0.2, timeout=0.1)
errorRaised = False
while True:
try:
enum.next()
except StopIteration:
break
- except iohandler.IOBroken, d:
+ except self.client.ioHandler.IOBroken, d:
errorRaised = True
self.assertHasNextEvent(
- self.fcpClient.events.ClientDisconnected,
+ self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
('DisconnectReason', consts.DisconnectReason.ConnectionDied),
#('Param', None),
@@ -445,7 +445,7 @@
def test_iterIterConnect_unknownNodehello(self):
- for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=0.2, timeout=0.1)):
+ for n, nodeHello in enumerate(self.client.iterConnect(duration=0.2, timeout=0.1)):
self.sendResponseMessage(
'i-am-invalid',
callNext=False,
@@ -453,7 +453,7 @@
self.failUnless(nodeHello is None)
self.assertHasNextEvent(
- self.fcpClient.events.ClientDisconnected,
+ self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
('DisconnectReason', consts.DisconnectReason.UnknownNodeHello),
)
@@ -463,14 +463,14 @@
def test_iterIterConnect_connect(self):
- for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=0.2, timeout=0.1)):
+ for n, nodeHello in enumerate(self.client.iterConnect(duration=0.2, timeout=0.1)):
self.sendResponseMessage(
'NodeHello',
FCPVersion='2.0',
Build='9999999999',
Node='Fred',
- Version=str(self.fcpClient.ExpectedFcpVersion),
+ Version=str(self.client.ExpectedFcpVersion),
Revision='999999999999',
ExRevision='9999999999',
Testnet='false',
@@ -482,7 +482,7 @@
)
self.assertHasNextEvent(
- self.fcpClient.events.ClientConnected,
+ self.client.events.ClientConnected,
consts.Message.NodeHello,
)
self.assertHasNextEvent(None)
@@ -494,14 +494,14 @@
def test_iterIterConnect_reconnect(self):
self.connectClient()
- for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=0.2, timeout=0.1)):
+ for n, nodeHello in enumerate(self.client.iterConnect(duration=0.2, timeout=0.1)):
self.sendResponseMessage(
'NodeHello',
FCPVersion='2.0',
Build='9999999999',
Node='Fred',
- Version=str(self.fcpClient.ExpectedFcpVersion),
+ Version=str(self.client.ExpectedFcpVersion),
Revision='999999999999',
ExRevision='9999999999',
Testnet='false',
@@ -513,12 +513,12 @@
)
self.assertHasNextEvent(
- self.fcpClient.events.ClientDisconnected,
+ self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
('DisconnectReason', consts.DisconnectReason.Reconnect)
)
self.assertHasNextEvent(
- self.fcpClient.events.ClientConnected,
+ self.client.events.ClientConnected,
consts.Message.NodeHello,
)
self.assertHasNextEvent(None)
@@ -528,14 +528,14 @@
def test_iterIterConnect_VersionMissmatch_FCPVersion(self):
- for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=0.2, timeout=0.1)):
+ for n, nodeHello in enumerate(self.client.iterConnect(duration=0.2, timeout=0.1)):
self.sendResponseMessage(
'NodeHello',
FCPVersion='0.0',
Build='9999999999',
Node='Fred',
- Version=str(self.fcpClient.ExpectedFcpVersion),
+ Version=str(self.client.ExpectedFcpVersion),
Revision='999999999999',
ExRevision='9999999999',
Testnet='false',
@@ -547,7 +547,7 @@
)
self.assertHasNextEvent(
- self.fcpClient.events.ClientDisconnected,
+ self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
('DisconnectReason', consts.DisconnectReason.VersionMissmatch)
)
@@ -558,14 +558,14 @@
def test_iterIterConnect_VersionMissmatch_Build(self):
- for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=0.2, timeout=0.1)):
+ for n, nodeHello in enumerate(self.client.iterConnect(duration=0.2, timeout=0.1)):
self.sendResponseMessage(
'NodeHello',
FCPVersion='2.0',
Build='0',
Node='Fred',
- Version=str(self.fcpClient.ExpectedFcpVersion),
+ Version=str(self.client.ExpectedFcpVersion),
Revision='999999999999',
ExRevision='9999999999',
Testnet='false',
@@ -577,7 +577,7 @@
)
self.assertHasNextEvent(
- self.fcpClient.events.ClientDisconnected,
+ self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
('DisconnectReason', consts.DisconnectReason.VersionMissmatch)
)
@@ -599,7 +599,7 @@
)
self.assertHasNextEvent(
- self.fcpClient.events.ClientDisconnected,
+ self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
('DisconnectReason', consts.DisconnectReason.DuplicateClientName)
)
@@ -615,7 +615,7 @@
def test_closeNode(self):
self.connectClient()
- self.fcpClient.closeNode()
+ self.client.closeNode()
self.assertHasNextMessage('Shutdown')
self.sendResponseMessage(
'ProtocolError',
@@ -623,7 +623,7 @@
)
self.assertHasNextEvent(
- self.fcpClient.events.ClientDisconnected,
+ self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
('DisconnectReason', consts.DisconnectReason.NodeClosing)
)
@@ -632,7 +632,237 @@
self.failIf(self.ioOpen())
self.closeClient()
+#***********************************************************************************
+# TODO: no idea how t test this
+#***********************************************************************************
+class Test_startNode(BaseTestClient):
+ pass
+
+#***********************************************************************************
+#
+#***********************************************************************************
+class Test_get_setConnectionName(BaseTestClient):
+
+ def test_get_setConnectionName(self):
+
+ self.failIf(self.client.setConnectionName() == 'foo')
+ 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 = {
+ 'FCPVersion': self.client.ExpectedFcpVersion,
+ 'Build':self.client.ExpectedNodeBuild,
+ }
+ result = self.client.versionCheckNodeHello(msg)
+ self.failUnless(result == True)
+
+ msg = {
+ 'FCPVersion': self.client.ExpectedFcpVersion -1,
+ 'Build':self.client.ExpectedNodeBuild,
+ }
+ result = self.client.versionCheckNodeHello(msg)
+ self.failUnless(result == False)
+
+ msg = {
+ 'FCPVersion': self.client.ExpectedFcpVersion,
+ 'Build':self.client.ExpectedNodeBuild -1,
+ }
+ result = self.client.versionCheckNodeHello(msg)
+ self.failUnless(result == False)
+
+ msg = {
+ 'FCPVersion': self.client.ExpectedFcpVersion +1,
+ 'Build':self.client.ExpectedNodeBuild,
+ }
+ result = self.client.versionCheckNodeHello(msg)
+ self.failUnless(result == False)
+
+ msg = {
+ 'FCPVersion': self.client.ExpectedFcpVersion,
+ 'Build':self.client.ExpectedNodeBuild +1,
+ }
+ result = self.client.versionCheckNodeHello(msg)
+ self.failUnless(result == True)
+
+#***********************************************************************************
+# TODO: not tested
+#***********************************************************************************
+class Test_handleMessage(BaseTestClient):
+ pass
+
+#***********************************************************************************
+#
+#***********************************************************************************
+class Test_next(BaseTestClient):
+
+ def test_idle(self):
+ self.connectClient()
+ msg = self.client.next()
+ msg2 = self.assertHasNextEvent(
+ self.client.events.Idle,
+ self.client.message.ClientSocketTimeout.name,
+ )
+ self.failUnless(msg == msg2)
+
+
+ def test_io_broken(self):
+ self.connectClient()
+ self.getIO().setBroken(True)
+
+ self.assertRaises(self.client.ioHandler.IOBroken, self.client.next, )
+ self.assertHasNextEvent(
+ self.client.events.ClientDisconnected,
+ consts.Message.ClientDisconnected,
+ ('DisconnectReason', consts.DisconnectReason.ConnectionDied)
+ )
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failIf(self.ioOpen())
+
+
+ def test_hasMessage(self):
+ self.connectClient()
+ self.sendResponseMessage(
+ 'HiThere',
+ callNext=False
+ )
+ msg = self.client.next()
+ self.assertEqual(msg.name, 'HiThere')
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failUnless(self.ioOpen())
+
+
+#***********************************************************************************
+#TODO: not tested yet
+#***********************************************************************************
+class Test_run(BaseTestClient):
+
+ pass
+
+#***********************************************************************************
+#
+#***********************************************************************************
+class Test_sendMessage(BaseTestClient):
+
+ def test_io_broken(self):
+ self.connectClient()
+ self.getIO().setBroken(True)
+
+ self.assertRaises(self.client.ioHandler.IOBroken, self.client.sendMessage, self.client.message.ClientHello())
+ self.assertHasNextEvent(
+ self.client.events.ClientDisconnected,
+ consts.Message.ClientDisconnected,
+ ('DisconnectReason', consts.DisconnectReason.ConnectionDied)
+ )
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failIf(self.ioOpen())
+
+
+ def test_messageSend(self):
+ self.connectClient()
+ self.client.sendMessage(self.client.message.ClientHello())
+ msg = self.client.next()
+ self.assertHasNextMessage('ClientHello')
+ self.assertHasNextEvent(self.client.events.Idle)
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failUnless(self.ioOpen())
+
+#***********************************************************************************
+#
+#***********************************************************************************
+class Test_getConfig(BaseTestClient):
+
+ def test_getConfig(self):
+ self.connectClient()
+ self.client.getConfig(
+ withCurrent=True,
+ withDefaults=True,
+ withExpertFlag=True,
+ withForceWriteFlag=True,
+ withSortOrder=True,
+ withShortDescription=True,
+ withLongDescription=True,
+ withDataTypes=True,
+ )
+ msg = self.client.next()
+ self.assertHasNextMessage('GetConfig',
+ ('WithCurrent', True),
+ ('WithDefaults', True),
+ ('WithExpertFlag', True),
+ ('WithForceWriteFlag', True),
+ ('WithSortOrder', True),
+ ('WithShortDescription', True),
+ ('WithLongDescription', True),
+ ('WithDataTypes', True),
+ )
+ self.assertHasNextEvent(self.client.events.Idle)
+
+
+ self.sendResponseMessage('ConfigData',
+ foo='1234',
+ )
+ self.assertHasNextEvent(
+ self.client.events.ConfigData,
+ consts.Message.ConfigData,
+ ('foo', '1234')
+ )
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failUnless(self.ioOpen())
+
+#***********************************************************************************
+#
+#***********************************************************************************
+class Test_modifyConfig(BaseTestClient):
+
+ def test_getConfig(self):
+ self.connectClient()
+ self.client.modifyConfig(
+ {'foo': '1234'}
+ )
+ msg = self.client.next()
+ self.assertHasNextMessage('ModifyConfig',
+ ('foo', '1234'),
+ )
+ self.assertHasNextEvent(self.client.events.Idle)
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failUnless(self.ioOpen())
+
+
+
+
###################################################
###################################################
###################################################
@@ -647,7 +877,7 @@
self.sendResponseMessage('CloseConnectionDuplicateClientName')
msg = self.assertHasNextEvent(
- self.fcpClient.events.ClientDisconnected,
+ self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
('DisconnectReason', consts.DisconnectReason.DuplicateClientName),
)
@@ -656,7 +886,7 @@
self.failIf(self.ioOpen())
self.assertHasNextEvent(None)
- #print self.fcpClient.test_messagesSend[0].name
+ #print self.client.test_messagesSend[0].name
self.assertHasNextMessage(None)
self.connectClient()
@@ -665,11 +895,11 @@
def test_1001_SocketDied_Receive(self):
self.getIO().setBroken(True)
- self.assertRaises(iohandler.IOBroken, self.fcpClient.next)
+ self.assertRaises(iohandler.IOBroken, self.client.next)
# check if ClientDisconnected events has been triggered
msg = self.assertHasNextEvent(
- self.fcpClient.events.ClientDisconnected,
+ self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
('DisconnectReason', consts.DisconnectReason.SocketDied),
#('Param', ClientSocketDiedMessage) # can not test here
@@ -689,11 +919,11 @@
self.getIO().setBroken(True)
# send a test message
- self.assertRaises(iohandler.IOBroken, self.fcpClient.sendMessage, message.newMessageType('test')())
+ self.assertRaises(iohandler.IOBroken, self.client.sendMessage, message.newMessageType('test')())
# check if ClientDisconnected events has been triggered
msg = self.assertHasNextEvent(
- self.fcpClient.events.ClientDisconnected,
+ self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
('DisconnectReason', consts.DisconnectReason.SocketDied),
#('Param', ClientSocketDiedMessage) # can not test here
@@ -710,7 +940,7 @@
def test_1003_Shutdown(self):
- self.fcpClient.closeFreenet()
+ self.client.closeFreenet()
msg = self.assertHasNextMessage(consts.Message.Shutdown)
self.sendResponseMessage(
@@ -720,7 +950,7 @@
# check events the client triggered
msg = self.assertHasNextEvent(
- self.fcpClient.events.ClientDisconnected,
+ self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
('DisconnectReason', consts.DisconnectReason.Shutdown)
#('Param', NodeHelloMessage) # can not test here
@@ -738,7 +968,7 @@
def test_1004_VersionMismatch(self):
- for n, nodeHello in enumerate(self.fcpClient.iterConnect(duration=1, timeout=0.1)):
+ for n, nodeHello in enumerate(self.client.iterConnect(duration=1, timeout=0.1)):
if n == 1:
self.assertHasNextMessage(
consts.Message.ClientHello
@@ -747,7 +977,7 @@
'NodeHello',
FCPVersion='0.0',
Node='Fred',
- Version=str(self.fcpClient.ExpectedFcpVersion),
+ Version=str(self.client.ExpectedFcpVersion),
Revision='0',
Build='0',
ExRevision='0',
@@ -761,7 +991,7 @@
# check events the client triggered
msg = self.assertHasNextEvent(
- self.fcpClient.events.ClientDisconnected,
+ self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
('DisconnectReason', consts.DisconnectReason.VersionMissmatch)
#('Param', NodeHelloMessage) # can not test here
@@ -782,11 +1012,11 @@
def test_2000_ClientGetRegistered(self):
# request a arbitrary file
- myIdentifier = self.fcpClient.getData(
+ myIdentifier = self.client.getData(
'arbitrary-uri',
)
- myRequest = self.fcpClient.getRequest(myIdentifier)
- requestsAll = self.fcpClient.getRequests()
+ myRequest = self.client.getRequest(myIdentifier)
+ requestsAll = self.client.getRequests()
self.assertHasNextMessage(consts.Message.ClientGet)
self.assertHasNextEvent(None)
@@ -806,11 +1036,11 @@
def test_2001_GetData_Success(self):
# request a arbitrary file
- myIdentifier = self.fcpClient.getData(
+ myIdentifier = self.client.getData(
'arbitrary-uri',
)
- myRequest = self.fcpClient.getRequest(myIdentifier)
- requestsAll = self.fcpClient.getRequests()
+ myRequest = self.client.getRequest(myIdentifier)
+ requestsAll = self.client.getRequests()
self.assertHasNextMessage(consts.Message.ClientGet)
@@ -833,7 +1063,7 @@
Succeeded=1,
)
self.assertHasNextEvent(
- self.fcpClient.events.RequestProgress,
+ self.client.events.RequestProgress,
)
# finalize request
@@ -861,7 +1091,7 @@
# client should complete and remove the request
self.assertHasNextEvent(
- self.fcpClient.events.RequestCompleted,
+ self.client.events.RequestCompleted,
consts.Message.ClientGet,
('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
@@ -890,7 +1120,7 @@
# client should complete but not remove the request
self.assertHasNextEvent(
- self.fcpClient.events.RequestCompleted,
+ self.client.events.RequestCompleted,
consts.Message.ClientGet,
('RequestStatus', consts.RequestStatus.Success | consts.RequestStatus.Completed),
data=data
@@ -908,11 +1138,11 @@
def test_2002_GetData_Failure(self):
# request a arbitrary file
- myIdentifier = self.fcpClient.getData(
+ myIdentifier = self.client.getData(
'arbitrary-uri',
)
- myRequest = self.fcpClient.getRequest(myIdentifier)
- requestsAll = self.fcpClient.getRequests()
+ myRequest = self.client.getRequest(myIdentifier)
+ requestsAll = self.client.getRequests()
self.assertHasNextMessage(consts.Message.ClientGet)
@@ -934,7 +1164,7 @@
# client should complete request and remove it
self.assertHasNextEvent(
- self.fcpClient.events.RequestFailed,
+ self.client.events.RequestFailed,
consts.Message.ClientGet,
('RequestStatus', consts.RequestStatus.Error |
consts.RequestStatus.RemovedFromQueue |
@@ -964,7 +1194,7 @@
# client should complete but not remove the request
self.assertHasNextEvent(
- self.fcpClient.events.RequestFailed,
+ self.client.events.RequestFailed,
consts.Message.ClientGet,
('RequestStatus', consts.RequestStatus.Error | consts.RequestStatus.Completed),
)
@@ -979,12 +1209,12 @@
def test_2003_GetFile_Success(self):
# request a arbitrary file
- myIdentifier = self.fcpClient.getFile(
+ myIdentifier = self.client.getFile(
'arbitrary-uri',
'arbitryry.txt'
)
- myRequest = self.fcpClient.getRequest(myIdentifier)
- requestsAll = self.fcpClient.getRequests()
+ myRequest = self.client.getRequest(myIdentifier)
+ requestsAll = self.client.getRequests()
self.assertHasNextMessage(consts.Message.ClientGet)
@@ -1008,7 +1238,7 @@
**params
)
self.assertHasNextEvent(
- self.fcpClient.events.RequestCompleted,
+ self.client.events.RequestCompleted,
consts.Message.ClientGet,
('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
@@ -1026,12 +1256,12 @@
def test_2004_GetFile_Failure(self):
# request a arbitrary file
- myIdentifier = self.fcpClient.getFile(
+ myIdentifier = self.client.getFile(
'arbitrary-uri',
'arbitryry.txt'
)
- myRequest = self.fcpClient.getRequest(myIdentifier)
- requestsAll = self.fcpClient.getRequests()
+ myRequest = self.client.getRequest(myIdentifier)
+ requestsAll = self.client.getRequests()
self.assertHasNextMessage(consts.Message.ClientGet)
@@ -1052,7 +1282,7 @@
)
self.assertHasNextEvent(
- self.fcpClient.events.RequestFailed,
+ self.client.events.RequestFailed,
consts.Message.ClientGet,
('RequestStatus', consts.RequestStatus.Error |
consts.RequestStatus.RemovedFromQueue |
@@ -1069,11 +1299,11 @@
def test_2005_GetKeyInfo_Success(self):
# request a arbitrary uri
- myIdentifier = self.fcpClient.getKeyInfo(
+ myIdentifier = self.client.getKeyInfo(
'arbitrary-uri',
)
- myRequest = self.fcpClient.getRequest(myIdentifier)
- requestsAll = self.fcpClient.getRequests()
+ myRequest = self.client.getRequest(myIdentifier)
+ requestsAll = self.client.getRequests()
self.assertHasNextMessage(consts.Message.ClientGet)
@@ -1097,7 +1327,7 @@
**params
)
self.assertHasNextEvent(
- self.fcpClient.events.RequestCompleted,
+ self.client.events.RequestCompleted,
consts.Message.ClientGet,
('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
@@ -1116,11 +1346,11 @@
# test specdial case where ProtocolError.TooBig is handled as success
# request a arbitrary uri
- myIdentifier = self.fcpClient.getKeyInfo(
+ myIdentifier = self.client.getKeyInfo(
'arbitrary-uri',
)
- myRequest = self.fcpClient.getRequest(myIdentifier)
- requestsAll = self.fcpClient.getRequests()
+ myRequest = self.client.getRequest(myIdentifier)
+ requestsAll = self.client.getRequests()
self.assertHasNextMessage(consts.Message.ClientGet)
@@ -1140,7 +1370,7 @@
# blah.. more here
)
self.assertHasNextEvent(
- self.fcpClient.events.RequestCompleted,
+ self.client.events.RequestCompleted,
consts.Message.ClientGet,
('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
@@ -1158,11 +1388,11 @@
def test_2007_GetKeyInfo_Failure(self):
# request a arbitrary file
- myIdentifier = self.fcpClient.getKeyInfo(
+ myIdentifier = self.client.getKeyInfo(
'arbitrary-uri',
)
- myRequest = self.fcpClient.getRequest(myIdentifier)
- requestsAll = self.fcpClient.getRequests()
+ myRequest = self.client.getRequest(myIdentifier)
+ requestsAll = self.client.getRequests()
self.assertHasNextMessage(consts.Message.ClientGet)
@@ -1182,7 +1412,7 @@
# blah.. more here
)
self.assertHasNextEvent(
- self.fcpClient.events.RequestFailed,
+ self.client.events.RequestFailed,
consts.Message.ClientGet,
('RequestStatus', consts.RequestStatus.Error |
consts.RequestStatus.RemovedFromQueue |
@@ -1207,12 +1437,12 @@
def testPutRedirect_Success(self):
# request a arbitrary file
- myIdentifier = self.fcpClient.putRedirect(
+ myIdentifier = self.client.putRedirect(
'my-redirect-name',
'SSK@arbitrary-uri',
)
- myRequest = self.fcpClient.getRequest(myIdentifier)
- requestsAll = self.fcpClient.getRequests()
+ myRequest = self.client.getRequest(myIdentifier)
+ requestsAll = self.client.getRequests()
self.assertHasNextMessage...
[truncated message content] |
|
From: <jU...@us...> - 2008-03-11 11:21:07
|
Revision: 367
http://fclient.svn.sourceforge.net/fclient/?rev=367&view=rev
Author: jUrner
Date: 2008-03-11 04:21:11 -0700 (Tue, 11 Mar 2008)
Log Message:
-----------
continued rewrite of 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-03-11 11:20:32 UTC (rev 366)
+++ trunk/sandbox/fcp2/test_fcp/test_client.py 2008-03-11 11:21:11 UTC (rev 367)
@@ -861,8 +861,528 @@
self.failUnless(self.ioOpen())
+#***********************************************************************************
+# NOTE: all the in depth tests for getFile() getKeyInfo() are performed here
+#***********************************************************************************
+class Test_getData(BaseTestClient):
+
+ def test_100_request_registered(self):
+ self.connectClient()
+ myIdentifier = self.client.getData('arbitrary-key')
+ requestsAll = self.client.getRequests()
+ self.failUnless(myIdentifier in requestsAll)
+ myRequest = self.client.getRequest(myIdentifier)
+ self.assertEqual(myRequest['RequestType'], self.client.consts.RequestType.GetData)
+
+ def test_200_key_object_is_accepted(self):
+ self.connectClient()
+ key = self.client.key.CHK()
+ myIdentifier = self.client.getData(key)
+ requestsAll = self.client.getRequests()
+
+
+ def test_300_message_send(self):
+ self.connectClient()
+ myIdentifier = self.client.getData('arbitrary-key')
+ requestsAll = self.client.getRequests()
+
+ self.assertHasNextMessage(
+ 'ClientGet',
+ ('URI', 'arbitrary-key'),
+ )
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failUnless(self.ioOpen())
+
+ def test_400_progress(self):
+
+ self.connectClient()
+ myIdentifier = self.client.getData('arbitrary-key')
+ requestsAll = self.client.getRequests()
+
+ self.assertHasNextMessage('ClientGet')
+ self.sendResponseMessage(
+ 'SimpleProgress',
+ Identifier=myIdentifier,
+ Total=0,
+ Required=0,
+ Failed=0,
+ FatallyFailed=0,
+ Succeeded=0,
+ )
+
+ self.assertHasNextEvent(
+ self.client.events.RequestProgress,
+ 'ClientGet',
+ )
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failUnless(self.ioOpen())
+
+
+ def test_500_completed_successfuly(self):
+
+ self.connectClient()
+ myIdentifier = self.client.getData('arbitrary-key')
+ requestsAll = self.client.getRequests()
+
+ self.assertHasNextMessage('ClientGet')
+ 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,
+ consts.Message.ClientGet,
+ ('RequestStatus', consts.RequestStatus.Success |
+ consts.RequestStatus.RemovedFromQueue |
+ consts.RequestStatus.Completed
+ ),
+ data=data
+ )
+
+ # non persistent requests are removed emidiately
+ self.failIf(myIdentifier in requestsAll)
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failUnless(self.ioOpen())
+
+
+ def test_600_completed_with_error(self):
+ self.connectClient()
+ myIdentifier = self.client.getData('arbitrary-key')
+ requestsAll = self.client.getRequests()
+
+ self.assertHasNextMessage('ClientGet')
+ self.sendResponseMessage(
+ 'GetFailed',
+ Code='28', # All data not found
+ Identifier=myIdentifier,
+ Global='false',
+ # blah.. more here
+ )
+ self.assertHasNextEvent(
+ self.client.events.RequestFailed,
+ consts.Message.ClientGet,
+ ('RequestStatus', consts.RequestStatus.Error |
+ consts.RequestStatus.RemovedFromQueue |
+ consts.RequestStatus.Completed
+ ),
+ )
+
+ # non persistent requests are removed emidiately
+ self.failIf(myIdentifier in requestsAll)
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failUnless(self.ioOpen())
+
+
+ def test_700_peristent_request_auto_retrieve_data(self):
+
+ self.connectClient()
+ myIdentifier = self.client.getData('arbitrary-key', persistence=self.client.consts.Persistence.Forever)
+ requestsAll = self.client.getRequests()
+
+ self.assertHasNextMessage('ClientGet')
+
+ data = 'foo'
+ params = {
+ 'Identifier': myIdentifier,
+ 'Global': 'false',
+ 'DataLength': len(data),
+ 'Metadata.ContentType': 'any',
+ }
+ self.sendResponseMessage(
+ 'DataFound',
+ **params
+ )
+
+ self.assertHasNextMessage('GetRequestStatus')
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failUnless(self.ioOpen())
+
+
+
+ def test_800_peristent_request_not_removed_on_success(self):
+ self.connectClient()
+ myIdentifier = self.client.getData('arbitrary-key', persistence=self.client.consts.Persistence.Forever)
+ requestsAll = self.client.getRequests()
+
+ self.assertHasNextMessage('ClientGet')
+ data = 'foo'
+ self.sendResponseMessage(
+ 'AllData',
+ data=data,
+ Identifier=myIdentifier,
+ Global='false',
+ DataLength=len(data),
+ )
+
+ self.assertHasNextEvent(self.client.events.RequestCompleted)
+
+ # persistent requests are not removed emidiately
+ self.failUnless(myIdentifier in requestsAll)
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failUnless(self.ioOpen())
+
+
+ def test_900_peristent_request_not_removed_on_error(self):
+ self.connectClient()
+ myIdentifier = self.client.getData('arbitrary-key', persistence=self.client.consts.Persistence.Forever)
+ requestsAll = self.client.getRequests()
+
+ self.assertHasNextMessage('ClientGet')
+ self.sendResponseMessage(
+ 'GetFailed',
+ Code='28', # All data not found
+ Identifier=myIdentifier,
+ Global='false',
+ # blah.. more here
+ )
+
+ self.assertHasNextEvent(self.client.events.RequestFailed)
+
+ # persistent requests are not removed emidiately
+ self.failUnless(myIdentifier in requestsAll)
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failUnless(self.ioOpen())
+
+
+ def test_910_restore_peristent_request_failure(self):
+ self.connectClient()
+ requestsAll = self.client.getRequests()
+ myIdentifier = '123456789'
+ self.sendResponseMessage(
+ 'PersistentGet',
+ Identifier=myIdentifier,
+ ClientToken='i-am-invalid',
+
+ callNext=False
+ )
+ self.assertRaises(self.client.ioHandler.MessageParseError, self.client.next)
+ self.failIf(myIdentifier in requestsAll)
+
+
+ def test_920_restore_peristent_request_success(self):
+ self.connectClient()
+ requestsAll = self.client.getRequests()
+ myIdentifier = self.client.getData('arbitrary-key', persistence=self.client.consts.Persistence.Forever)
+ self.failUnless(myIdentifier in requestsAll)
+ myRequest = self.client.getRequest(myIdentifier)
+ del requestsAll[myIdentifier]
+
+ self.sendResponseMessage(
+ 'PersistentGet',
+ **myRequest.params
+ )
+ self.failUnless(myIdentifier in requestsAll)
+ myRequest = self.client.getRequest(myIdentifier)
+ msg = self.assertHasNextEvent(
+ self.client.events.RequestRestored,
+ 'ClientGet',
+ ('Identifier', myIdentifier),
+ ('RequestStatus', consts.RequestStatus.Restored), # no RequestStatus.Pending flag should be set here
+ )
+
+
+
+#***********************************************************************************
+#
+#***********************************************************************************
+class Test_getFile(BaseTestClient):
+
+ def test_100_request_registered(self):
+ self.connectClient()
+ myIdentifier = self.client.getFile('arbitrary-key', 'foo.txt')
+ requestsAll = self.client.getRequests()
+ self.failUnless(myIdentifier in requestsAll)
+ myRequest = self.client.getRequest(myIdentifier)
+ self.assertEqual(myRequest['RequestType'], self.client.consts.RequestType.GetFile)
+
+
+ def test_200_key_object_is_accepted(self):
+ self.connectClient()
+ key = self.client.key.CHK()
+
+ myIdentifier = self.client.getFile(key, 'foo.txt')
+ requestsAll = self.client.getRequests()
+
+
+ def test_300_dda_denied(self):
+ self.connectClient()
+
+ myIdentifier = self.client.getFile(
+ 'arbitrary-uri',
+ os.path.join(DIR, 'DDATest.txt')
+ )
+ myRequest = self.client.getRequest(myIdentifier)
+ requestsAll = self.client.getRequests()
+
+ self.assertHasNextMessage('ClientGet')
+ self.sendResponseMessage(
+ 'ProtocolError',
+ Code=25, # DDADenied
+ Identifier=myIdentifier,
+ ExtraDescription='An error occured',
+ Fatal='false',
+ Global='false',
+ )
+
+ # client should respond with a TestDDARequest
+ self.assertHasNextMessage(
+ consts.Message.TestDDARequest,
+ ('Directory', DIR),
+ ('WantWriteDirectory', True)
+ )
+
+ # respond with a TestDDAReply message
+ writeContent = 'blah'
+ fd, fpath = tempfile.mkstemp(dir=DIR)
+ os.close(fd)
+ self.sendResponseMessage(
+ 'TestDDAReply',
+ Directory=DIR,
+ WriteFilename=fpath,
+ ContentToWrite=writeContent,
+ )
+
+ # client should respond with a TestDDAResponse
+ self.assertHasNextMessage(
+ consts.Message.TestDDAResponse,
+ ('Directory', DIR)
+ )
+
+ # check if content was written
+ with open(fpath) as fp:
+ self.failUnless(fp.read() == writeContent)
+
+ # respond with a TestDDAComplete message
+ self.sendResponseMessage(
+ 'TestDDAComplete',
+ Directory=DIR,
+ WriteDirectoryAllowed='true',
+ )
+
+ # check if our tempfile was removed
+ self.failIf(os.path.isfile(fpath))
+
+ # client sahould send a new ClientGet
+ msg = self.assertHasNextMessage(consts.Message.ClientGet)
+
+ # no events should have been triggered upo to now
+ self.assertHasNextEvent(None)
+
+ # respond with a PersistentGet
+ self.sendResponseMessage(
+ 'PersistentGet',
+ Started='false',
+ **msg.params
+ )
+
+ self.failUnless(myIdentifier in requestsAll)
+
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failUnless(self.ioOpen())
+
+
+#***********************************************************************************
+#
+#***********************************************************************************
+class Test_getKeyinfo(BaseTestClient):
+
+
+ def test_100_request_registered(self):
+ self.connectClient()
+ myIdentifier = self.client.getKeyInfo('arbitrary-key')
+ requestsAll = self.client.getRequests()
+ self.failUnless(myIdentifier in requestsAll)
+ myRequest = self.client.getRequest(myIdentifier)
+ self.assertEqual(myRequest['RequestType'], self.client.consts.RequestType.GetKeyInfo)
+
+ def test_200_key_object_is_accepted(self):
+ self.connectClient()
+ key = self.client.key.CHK()
+
+ myIdentifier = self.client.getKeyInfo(key)
+ requestsAll = self.client.getRequests()
+
+
+ def test_300_getKeyInfo_Success(self):
+ self.connectClient()
+ myIdentifier = self.client.getKeyInfo('arbitrary-uri')
+ myRequest = self.client.getRequest(myIdentifier)
+ requestsAll = self.client.getRequests()
+
+ self.assertHasNextMessage('ClientGet')
+
+ data = 'foo'
+ params = {
+ 'Identifier': myIdentifier,
+ 'Global': 'false',
+ 'DataLength': 123456,
+ 'Metadata.ContentType': 'any',
+ }
+ self.sendResponseMessage(
+ 'DataFound',
+ **params
+ )
+ self.assertHasNextEvent(
+ self.client.events.RequestCompleted,
+ consts.Message.ClientGet,
+ ('RequestStatus', consts.RequestStatus.Success |
+ consts.RequestStatus.RemovedFromQueue |
+ consts.RequestStatus.Completed
+ ),
+ )
+ self.failIf(myIdentifier in requestsAll)
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failUnless(self.ioOpen())
+
+
+ def test_400_GetKeyInfo_TooBig(self):
+ self.connectClient()
+
+ # 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(consts.Message.ClientGet)
+ self.sendResponseMessage(
+ 'GetFailed',
+ Code='21', # Too big
+ Identifier=myIdentifier,
+ Global='false',
+ # blah.. more here
+ )
+ self.assertHasNextEvent(
+ self.client.events.RequestCompleted,
+ consts.Message.ClientGet,
+ ('RequestStatus', consts.RequestStatus.Success |
+ consts.RequestStatus.RemovedFromQueue |
+ consts.RequestStatus.Completed
+ ),
+ )
+ self.failIf(myIdentifier in requestsAll)
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failUnless(self.ioOpen())
+
+
+ def test_500_GetKeyInfo_Failure(self):
+ self.connectClient()
+
+ # request a arbitrary file
+ myIdentifier = self.client.getKeyInfo('arbitrary-uri')
+ myRequest = self.client.getRequest(myIdentifier)
+ requestsAll = self.client.getRequests()
+
+ self.assertHasNextMessage(consts.Message.ClientGet)
+ self.sendResponseMessage(
+ 'GetFailed',
+ Code='28', # All data not found
+ Identifier=myIdentifier,
+ Global='false',
+ # blah.. more here
+ )
+ self.assertHasNextEvent(
+ self.client.events.RequestFailed,
+ consts.Message.ClientGet,
+ ('RequestStatus', consts.RequestStatus.Error |
+ consts.RequestStatus.RemovedFromQueue |
+ consts.RequestStatus.Completed
+ ),
+ )
+ self.failIf(myIdentifier in requestsAll)
+ self.assertHasNextEvent(None)
+ self.assertHasNextMessage(None)
+ self.failUnless(self.ioOpen())
+
+
+#***********************************************************************************
+#
+#***********************************************************************************
+class Test_subscribeUSK(BaseTestClient):
+
+ def test_100_subscribeUSK_accepts_key_object(self):
+ self.connectClient()
+ key = self.client.key.USK('123456789', 'foo', 0)
+ myIdentifier = self.client.subscribeUSK(key)
+ self.assertHasNextMessage(
+ 'SubscribeUSK',
+ ('URI', key.toString()),
+ )
+
+
+ def test_200_subscribeUSK(self):
+ self.connectClient()
+ myIdentifier = self.client.subscribeUSK('arbitrary-key')
+ myRequest = self.client.getRequest(myIdentifier)
+ requestsAll = self.client.getRequests()
+ self.failUnless(myIdentifier in requestsAll)
+ myRequest = self.client.getRequest(myIdentifier)
+ self.assertEqual(myRequest['RequestType'], self.client.consts.RequestType.SubscribeUSK)
+
+ self.assertHasNextMessage(
+ 'SubscribeUSK',
+ ('URI', 'arbitrary-key'),
+ )
+ self.failUnless(myIdentifier in requestsAll)
+
+ # usk update requests are permanent, so the completed flag shuld always be set
+ myRequest['RequestStatus'] == self.client.consts.RequestStatus.Completed
+
+ self.sendResponseMessage(
+ 'SubscribedUSKUpdate',
+ Edition=99,
+ Identifier=myIdentifier,
+ URI='arbitrary-uri'
+ )
+
+ self.assertHasNextEvent(
+ self.client.events.USKUpdated,
+ 'SubscribeUSK',
+ ('Edition', 99),
+ ('Identifier', myIdentifier),
+ ('URI', 'arbitrary-key'),
+ )
+
+
+
+
###################################################
###################################################
###################################################
@@ -2848,6 +3368,10 @@
Test_sendMessage,
Test_getConfig,
Test_modifyConfig,
+ Test_getData,
+ Test_getFile,
+ Test_getKeyinfo,
+ Test_subscribeUSK,
#TestDisconnectReason,
#TestClientGet,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-04-08 10:12:57
|
Revision: 376
http://fclient.svn.sourceforge.net/fclient/?rev=376&view=rev
Author: jUrner
Date: 2008-04-08 03:12:57 -0700 (Tue, 08 Apr 2008)
Log Message:
-----------
typo
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-04-08 10:11:37 UTC (rev 375)
+++ trunk/sandbox/fcp2/test_fcp/test_client.py 2008-04-08 10:12:57 UTC (rev 376)
@@ -1219,7 +1219,7 @@
#***********************************************************************************
#
#***********************************************************************************
-class Test_getKeyinfo(BaseTestClient):
+class Test_getKeyInfo(BaseTestClient):
def test_100_request_registered(self):
@@ -3370,7 +3370,7 @@
Test_modifyConfig,
Test_getData,
Test_getFile,
- Test_getKeyinfo,
+ Test_getKeyInfo,
Test_subscribeUSK,
#TestDisconnectReason,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-04-09 07:32:14
|
Revision: 382
http://fclient.svn.sourceforge.net/fclient/?rev=382&view=rev
Author: jUrner
Date: 2008-04-09 00:32:18 -0700 (Wed, 09 Apr 2008)
Log Message:
-----------
moved errors and loggers to consts for easier access
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-04-09 07:32:04 UTC (rev 381)
+++ trunk/sandbox/fcp2/test_fcp/test_client.py 2008-04-09 07:32:18 UTC (rev 382)
@@ -281,7 +281,7 @@
self.client.ioHandler.io.setReverseDirection(True)
try:
msg = self.client.ioHandler.readMessage()
- except self.client.ioHandler.IOTimeout:
+ except consts.IOTimeoutError:
return None
finally:
self.client.ioHandler.io.setReverseDirection(False)
@@ -426,7 +426,7 @@
enum.next()
except StopIteration:
break
- except self.client.ioHandler.IOBroken, d:
+ except consts.IOBrokenError, d:
errorRaised = True
self.assertHasNextEvent(
self.client.events.ClientDisconnected,
@@ -731,7 +731,7 @@
self.connectClient()
self.getIO().setBroken(True)
- self.assertRaises(self.client.ioHandler.IOBroken, self.client.next, )
+ self.assertRaises(consts.IOBrokenError, self.client.next, )
self.assertHasNextEvent(
self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
@@ -773,7 +773,7 @@
self.connectClient()
self.getIO().setBroken(True)
- self.assertRaises(self.client.ioHandler.IOBroken, self.client.sendMessage, self.client.message.ClientHello())
+ self.assertRaises(consts.IOBrokenError, self.client.sendMessage, self.client.message.ClientHello())
self.assertHasNextEvent(
self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
@@ -1089,7 +1089,7 @@
callNext=False
)
- self.assertRaises(self.client.ioHandler.MessageParseError, self.client.next)
+ self.assertRaises(consts.MessageParseError, self.client.next)
self.failIf(myIdentifier in requestsAll)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-06-28 08:14:32
|
Revision: 408
http://fclient.svn.sourceforge.net/fclient/?rev=408&view=rev
Author: jUrner
Date: 2008-06-28 01:14:41 -0700 (Sat, 28 Jun 2008)
Log Message:
-----------
asdded a test to check if ClientDisconnected() is triggered when the client is already closed
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-28 08:13:38 UTC (rev 407)
+++ trunk/sandbox/fcp2/test_fcp/test_client.py 2008-06-28 08:14:41 UTC (rev 408)
@@ -324,7 +324,8 @@
#***********************************************************************************
class Test_close(BaseTestClient):
- def test_close(self):
+ #NOTE: currently ClientDisconnected() is triggered even if the client was not connected
+ def test_close_disconnected_client(self):
self.client.close()
self.assertHasNextEvent(
self.client.events.ClientDisconnected,
@@ -332,7 +333,17 @@
('DisconnectReason', consts.DisconnectReason.Close),
)
+ def test_close_connected_client(self):
+ self.connectClient()
+ self.client.close()
+ self.assertHasNextEvent(
+ self.client.events.ClientDisconnected,
+ consts.Message.ClientDisconnected,
+ ('DisconnectReason', consts.DisconnectReason.Close),
+ )
+
+
#***********************************************************************************
#
#***********************************************************************************
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-06-29 10:59:22
|
Revision: 418
http://fclient.svn.sourceforge.net/fclient/?rev=418&view=rev
Author: jUrner
Date: 2008-06-29 03:59:31 -0700 (Sun, 29 Jun 2008)
Log Message:
-----------
adapt to recent changes
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-29 10:59:13 UTC (rev 417)
+++ trunk/sandbox/fcp2/test_fcp/test_client.py 2008-06-29 10:59:31 UTC (rev 418)
@@ -196,7 +196,6 @@
self.assertEqual(value1, msg[param1])
if param2 is not None:
param2, value2 = param2
- self.failUnless(param2 in msg.params)
self.assertEqual(value2, msg[param2])
if param3 is not None:
param3, value3 = param3
@@ -879,28 +878,23 @@
def test_100_request_registered(self):
self.connectClient()
- myIdentifier = self.client.getData('arbitrary-key')
+ myKey = self.client.key.key('KSK@foo')
+ myIdentifier = self.client.getData(myKey)
requestsAll = self.client.getRequests()
self.failUnless(myIdentifier in requestsAll)
myRequest = self.client.getRequest(myIdentifier)
self.assertEqual(myRequest['RequestType'], self.client.consts.RequestType.GetData)
- def test_200_key_object_is_accepted(self):
- self.connectClient()
- key = self.client.key.CHK()
- myIdentifier = self.client.getData(key)
- requestsAll = self.client.getRequests()
-
-
def test_300_message_send(self):
self.connectClient()
- myIdentifier = self.client.getData('arbitrary-key')
+ myKey = self.client.key.key('KSK@foo')
+ myIdentifier = self.client.getData(myKey)
requestsAll = self.client.getRequests()
self.assertHasNextMessage(
'ClientGet',
- ('URI', 'arbitrary-key'),
+ ('URI', myKey),
)
self.assertHasNextEvent(None)
@@ -911,7 +905,8 @@
def test_400_progress(self):
self.connectClient()
- myIdentifier = self.client.getData('arbitrary-key')
+ myKey = self.client.key.key('KSK@foo')
+ myIdentifier = self.client.getData(myKey)
requestsAll = self.client.getRequests()
self.assertHasNextMessage('ClientGet')
@@ -938,7 +933,8 @@
def test_500_completed_successfuly(self):
self.connectClient()
- myIdentifier = self.client.getData('arbitrary-key')
+ myKey = self.client.key.key('KSK@foo')
+ myIdentifier = self.client.getData(myKey)
requestsAll = self.client.getRequests()
self.assertHasNextMessage('ClientGet')
@@ -984,7 +980,8 @@
def test_600_completed_with_error(self):
self.connectClient()
- myIdentifier = self.client.getData('arbitrary-key')
+ myKey = self.client.key.key('KSK@foo')
+ myIdentifier = self.client.getData(myKey)
requestsAll = self.client.getRequests()
self.assertHasNextMessage('ClientGet')
@@ -1015,7 +1012,8 @@
def test_700_peristent_request_auto_retrieve_data(self):
self.connectClient()
- myIdentifier = self.client.getData('arbitrary-key', persistence=self.client.consts.Persistence.Forever)
+ myKey = self.client.key.key('KSK@foo')
+ myIdentifier = self.client.getData(myKey, persistence=self.client.consts.Persistence.Forever)
requestsAll = self.client.getRequests()
self.assertHasNextMessage('ClientGet')
@@ -1042,7 +1040,8 @@
def test_800_peristent_request_not_removed_on_success(self):
self.connectClient()
- myIdentifier = self.client.getData('arbitrary-key', persistence=self.client.consts.Persistence.Forever)
+ myKey = self.client.key.key('KSK@foo')
+ myIdentifier = self.client.getData(myKey, persistence=self.client.consts.Persistence.Forever)
requestsAll = self.client.getRequests()
self.assertHasNextMessage('ClientGet')
@@ -1067,7 +1066,8 @@
def test_900_peristent_request_not_removed_on_error(self):
self.connectClient()
- myIdentifier = self.client.getData('arbitrary-key', persistence=self.client.consts.Persistence.Forever)
+ myKey = self.client.key.key('KSK@foo')
+ myIdentifier = self.client.getData(myKey, persistence=self.client.consts.Persistence.Forever)
requestsAll = self.client.getRequests()
self.assertHasNextMessage('ClientGet')
@@ -1107,7 +1107,8 @@
def test_920_restore_peristent_request_success(self):
self.connectClient()
requestsAll = self.client.getRequests()
- myIdentifier = self.client.getData('arbitrary-key', persistence=self.client.consts.Persistence.Forever)
+ myKey = self.client.key.key('KSK@foo')
+ myIdentifier = self.client.getData(myKey, persistence=self.client.consts.Persistence.Forever)
self.failUnless(myIdentifier in requestsAll)
myRequest = self.client.getRequest(myIdentifier)
del requestsAll[myIdentifier]
@@ -1134,7 +1135,8 @@
def test_100_request_registered(self):
self.connectClient()
- myIdentifier = self.client.getFile('arbitrary-key', 'foo.txt')
+ myKey = self.client.key.key('KSK@foo')
+ myIdentifier = self.client.getFile(myKey, 'foo.txt')
requestsAll = self.client.getRequests()
self.failUnless(myIdentifier in requestsAll)
myRequest = self.client.getRequest(myIdentifier)
@@ -1143,17 +1145,16 @@
def test_200_key_object_is_accepted(self):
self.connectClient()
- key = self.client.key.CHK()
-
- myIdentifier = self.client.getFile(key, 'foo.txt')
+ myKey = self.client.key.key('KSK@foo')
+ myIdentifier = self.client.getFile(myKey, 'foo.txt')
requestsAll = self.client.getRequests()
def test_300_dda_denied(self):
self.connectClient()
-
+ myKey = self.client.key.key('KSK@foo')
myIdentifier = self.client.getFile(
- 'arbitrary-uri',
+ myKey,
os.path.join(DIR, 'DDATest.txt')
)
myRequest = self.client.getRequest(myIdentifier)
@@ -1235,7 +1236,8 @@
def test_100_request_registered(self):
self.connectClient()
- myIdentifier = self.client.getKeyInfo('arbitrary-key')
+ myKey = self.client.key.key('KSK@foo')
+ myIdentifier = self.client.getKeyInfo(myKey)
requestsAll = self.client.getRequests()
self.failUnless(myIdentifier in requestsAll)
myRequest = self.client.getRequest(myIdentifier)
@@ -1243,15 +1245,16 @@
def test_200_key_object_is_accepted(self):
self.connectClient()
- key = self.client.key.CHK()
+ myKey = self.client.key.key('KSK@foo')
- myIdentifier = self.client.getKeyInfo(key)
+ myIdentifier = self.client.getKeyInfo(myKey)
requestsAll = self.client.getRequests()
def test_300_getKeyInfo_Success(self):
self.connectClient()
- myIdentifier = self.client.getKeyInfo('arbitrary-uri')
+ myKey = self.client.key.key('KSK@foo')
+ myIdentifier = self.client.getKeyInfo(myKey)
myRequest = self.client.getRequest(myIdentifier)
requestsAll = self.client.getRequests()
@@ -1287,7 +1290,8 @@
# test specdial case where ProtocolError.TooBig is handled as success
# request a arbitrary uri
- myIdentifier = self.client.getKeyInfo('arbitrary-uri')
+ myKey = self.client.key.key('KSK@foo')
+ myIdentifier = self.client.getKeyInfo(myKey)
myRequest = self.client.getRequest(myIdentifier)
requestsAll = self.client.getRequests()
@@ -1317,7 +1321,8 @@
self.connectClient()
# request a arbitrary file
- myIdentifier = self.client.getKeyInfo('arbitrary-uri')
+ myKey = self.client.key.key('KSK@foo')
+ myIdentifier = self.client.getKeyInfo(myKey)
myRequest = self.client.getRequest(myIdentifier)
requestsAll = self.client.getRequests()
@@ -1350,15 +1355,15 @@
def test_100_subscribeUSK_accepts_key_object(self):
self.connectClient()
- key = self.client.key.USK('123456789', 'foo', 0)
+ key = self.client.key.USK(client.key.DummyKeyData, 'foo', 0)
myIdentifier = self.client.subscribeUSK(key)
self.assertHasNextMessage(
'SubscribeUSK',
- ('URI', key.toString()),
+ ('URI', key),
)
- def test_200_subscribeUSK(self):
+ def XXXtest_200_subscribeUSK(self):
self.connectClient()
myIdentifier = self.client.subscribeUSK('arbitrary-key')
myRequest = self.client.getRequest(myIdentifier)
@@ -3326,11 +3331,10 @@
def test_11000_Subscribe(self):
-
myIdentifier = self.client.subscribeUSK('arbitrary')
myRequest = self.client.getRequest(myIdentifier)
requestsAll = self.client.getRequests()
-
+
self.failUnless(myIdentifier in requestsAll)
self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-06-29 12:39:07
|
Revision: 423
http://fclient.svn.sourceforge.net/fclient/?rev=423&view=rev
Author: jUrner
Date: 2008-06-29 05:39:15 -0700 (Sun, 29 Jun 2008)
Log Message:
-----------
got most of the tests to work again
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-29 12:38:23 UTC (rev 422)
+++ trunk/sandbox/fcp2/test_fcp/test_client.py 2008-06-29 12:39:15 UTC (rev 423)
@@ -360,8 +360,7 @@
#***********************************************************************************
class Test_connect(BaseTestClient):
pass
-
-
+
#***********************************************************************************
#
#***********************************************************************************
@@ -1346,104 +1345,38 @@
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
self.failUnless(self.ioOpen())
-
-
-#***********************************************************************************
-#
-#***********************************************************************************
-class Test_subscribeUSK(BaseTestClient):
- def test_100_subscribeUSK_accepts_key_object(self):
- self.connectClient()
- key = self.client.key.USK(client.key.DummyKeyData, 'foo', 0)
- myIdentifier = self.client.subscribeUSK(key)
- self.assertHasNextMessage(
- 'SubscribeUSK',
- ('URI', key),
- )
-
-
- def XXXtest_200_subscribeUSK(self):
- self.connectClient()
- myIdentifier = self.client.subscribeUSK('arbitrary-key')
- myRequest = self.client.getRequest(myIdentifier)
- requestsAll = self.client.getRequests()
- self.failUnless(myIdentifier in requestsAll)
- myRequest = self.client.getRequest(myIdentifier)
- self.assertEqual(myRequest['RequestType'], self.client.consts.RequestType.SubscribeUSK)
-
- self.assertHasNextMessage(
- 'SubscribeUSK',
- ('URI', 'arbitrary-key'),
- )
- self.failUnless(myIdentifier in requestsAll)
-
- # usk update requests are permanent, so the completed flag shuld always be set
- myRequest['RequestStatus'] == self.client.consts.RequestStatus.Completed
-
- self.sendResponseMessage(
- 'SubscribedUSKUpdate',
- Edition=99,
- Identifier=myIdentifier,
- URI='arbitrary-uri'
- )
-
- self.assertHasNextEvent(
- self.client.events.USKUpdated,
- 'SubscribeUSK',
- ('Edition', 99),
- ('Identifier', myIdentifier),
- ('URI', 'arbitrary-key'),
- )
-
-
-
-
-###################################################
-###################################################
-###################################################
-
-
#***********************************************************************************
#
#***********************************************************************************
-class TestDisconnectReason(BaseTestClient):
+class Test_disconnectReason(BaseTestClient):
def test_1000_DuplicateClientName(self):
-
+ self.connectClient()
self.sendResponseMessage('CloseConnectionDuplicateClientName')
msg = self.assertHasNextEvent(
self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
('DisconnectReason', consts.DisconnectReason.DuplicateClientName),
)
- self.failUnless('Param' in msg.params)
- self.assertEqual(msg['Param'], None)
-
+
self.failIf(self.ioOpen())
self.assertHasNextEvent(None)
- #print self.client.test_messagesSend[0].name
self.assertHasNextMessage(None)
-
- self.connectClient()
+
-
def test_1001_SocketDied_Receive(self):
-
+ self.connectClient()
self.getIO().setBroken(True)
- self.assertRaises(iohandler.IOBroken, self.client.next)
+ self.assertRaises(consts.IOBrokenError, self.client.next)
# check if ClientDisconnected events has been triggered
msg = self.assertHasNextEvent(
self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
- ('DisconnectReason', consts.DisconnectReason.SocketDied),
- #('Param', ClientSocketDiedMessage) # can not test here
+ ('DisconnectReason', consts.DisconnectReason.ConnectionDied),
)
- self.failUnless('Param' in msg.params)
- # Param is now details of IOBroken exception, no idea how to test
- #self.assertEqual(msg['Param'].name, consts.Message.ClientSocketDied)
-
+
self.failIf(self.ioOpen())
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
@@ -1451,23 +1384,19 @@
def test_1002_SocketDied_Send(self):
-
+ self.connectClient()
self.getIO().setBroken(True)
# send a test message
- self.assertRaises(iohandler.IOBroken, self.client.sendMessage, message.newMessageType('test')())
+ self.assertRaises(consts.IOBrokenError, self.client.sendMessage, message.newMessageType('test')())
# check if ClientDisconnected events has been triggered
msg = self.assertHasNextEvent(
self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
- ('DisconnectReason', consts.DisconnectReason.SocketDied),
- #('Param', ClientSocketDiedMessage) # can not test here
+ ('DisconnectReason', consts.DisconnectReason.ConnectionDied),
)
- self.failUnless('Param' in msg.params)
- # Param is now details of IOBroken exception, no idea how to test
- #self.assertEqual(msg['Param'].name, consts.Message.ClientSocketDied)
-
+
self.failIf(self.ioOpen())
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
@@ -1475,9 +1404,9 @@
def test_1003_Shutdown(self):
+ self.connectClient()
+ self.client.closeNode()
- self.client.closeFreenet()
-
msg = self.assertHasNextMessage(consts.Message.Shutdown)
self.sendResponseMessage(
'ProtocolError',
@@ -1488,13 +1417,9 @@
msg = self.assertHasNextEvent(
self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
- ('DisconnectReason', consts.DisconnectReason.Shutdown)
- #('Param', NodeHelloMessage) # can not test here
+ ('DisconnectReason', consts.DisconnectReason.NodeClosing)
)
- self.failUnless('Param' in msg.params)
- self.assertEqual(msg['Param'], None)
-
self.failIf(self.ioOpen())
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
@@ -1503,9 +1428,8 @@
def test_1004_VersionMismatch(self):
-
for n, nodeHello in enumerate(self.client.iterConnect(duration=1, timeout=0.1)):
- if n == 1:
+ if n == 2:
self.assertHasNextMessage(
consts.Message.ClientHello
)
@@ -1530,11 +1454,8 @@
self.client.events.ClientDisconnected,
consts.Message.ClientDisconnected,
('DisconnectReason', consts.DisconnectReason.VersionMissmatch)
- #('Param', NodeHelloMessage) # can not test here
)
- self.failUnless('Param' in msg.params)
- self.assertEqual(msg['Param'].name, consts.Message.NodeHello)
-
+
self.failIf(self.ioOpen())
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
@@ -1543,7 +1464,7 @@
#***********************************************************************************
#
#***********************************************************************************
-class TestClientGet(BaseTestClient):
+class Test_clientGet(BaseTestClient):
def test_2000_ClientGetRegistered(self):
@@ -1969,7 +1890,7 @@
# SSK@, USK@
# putFile / PutDir TestDDA
-class TestClientPut(BaseTestClient):
+class Test_clientPut(BaseTestClient):
def testPutRedirect_Success(self):
# request a arbitrary file
@@ -2351,13 +2272,16 @@
#***********************************************************************************
#
#***********************************************************************************
-class TestRequests(BaseTestClient):
+class Test_requests(BaseTestClient):
def test_3000_ModifyRequest_Persistent(self):
-
+ self.connectClient()
+
+
# request a arbitrary file
+ myKey = self.client.key.key('KSK@foo')
myIdentifier = self.client.getFile(
- 'arbitrary-uri',
+ myKey,
'arbitryry.txt',
persistentUserData='foo',
priorityClass=consts.Priority.Medium,
@@ -2401,10 +2325,12 @@
def test_3001_ModifyRequest_NonPersistent(self):
-
+ self.connectClient()
+
# request a arbitrary file
+ myKey = self.client.key.key('KSK@foo')
myIdentifier = self.client.getFile(
- 'arbitrary-uri',
+ myKey,
'arbitryry.txt',
persistentUserData='foo',
priorityClass=consts.Priority.Medium,
@@ -2448,11 +2374,13 @@
self.failIf(requestsAll)
- def test_3002_RemoveRequest_NonPersistent(self):
-
+ def test_3002_RemoveRequest(self):
+ self.connectClient()
+
# request a file
+ myKey = self.client.key.key('KSK@foo')
myIdentifier = self.client.getFile(
- 'arbitrary-uri',
+ myKey,
'arbitrary.txt'
)
myRequest = self.client.getRequest(myIdentifier)
@@ -2472,125 +2400,42 @@
# now cancel request
self.client.removeRequest(myIdentifier)
+ self.assertHasNextMessage('RemoveRequest')
- # of our request should be removed emidiately,
+ # of our request should be marked as removed
self.assertEqual(myRequest['RequestStatus'], consts.RequestStatus.Removed |
- consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
)
- self.failIf(myIdentifier in self.client.getRequests())
-
- # now the request should have been removed
- self.assertHasNextEvent(
- self.client.events.RequestRemoved,
- consts.Message.ClientGet,
- ('RequestStatus', consts.RequestStatus.Removed |
- consts.RequestStatus.RemovedFromQueue |
- consts.RequestStatus.Completed
- ),
- )
- self.failIf(self.client.getRequests())
- self.assertHasNextEvent(None)
- self.assertHasNextMessage(None)
- self.failIf(requestsAll)
-
-
- def test_3003_RemoveRequest_persistent(self):
-
- # request a file
- myIdentifier = self.client.getFile(
- 'arbitrary-uri',
- 'arbitrary.txt',
- persistence=consts.Persistence.Reboot,
- )
- myRequest = self.client.getRequest(myIdentifier)
- requestsAll = self.client.getRequests()
-
- self.assertHasNextMessage(consts.Message.ClientGet)
-
- # respond to the file request
+ # respond with a Getfailed
self.sendResponseMessage(
- 'PersistentGet',
- Started='false',
- **myRequest.params
+ 'GetFailed',
+ Code='25', # fetch error canceled
+ Identifier=myIdentifier,
)
-
- # ignore events and messages so far
- self.events = []
- self.messages = []
-
- # now cancel request
- self.client.removeRequest(myIdentifier)
- # status of our request should be set to removed emidiately, but it should
- # not be removed from the client
- self.assertEqual(myRequest['RequestStatus'], consts.RequestStatus.Removed | consts.RequestStatus.Completed)
- self.failUnless(myIdentifier in self.client.getRequests())
- # client schould send a RemovePersistentRequest
- self.assertHasNextMessage(consts.Message.RemovePersistentRequest)
-
- # respond with a PersistentRequestRemoved
- self.sendResponseMessage(
- 'PersistentRequestRemoved',
- Identifier=myIdentifier,
- )
-
# now the request should have been removed
- self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.RemovedFromQueue)
- self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed)
self.assertHasNextEvent(
self.client.events.RequestRemoved,
consts.Message.ClientGet,
('RequestStatus', consts.RequestStatus.Removed |
- consts.RequestStatus.RemovedFromQueue |
- consts.RequestStatus.Completed
- ),
+ consts.RequestStatus.RemovedFromQueue |
+ consts.RequestStatus.Completed
+ ),
)
-
- self.failIf(self.client.getRequests())
- self.assertHasNextEvent(None)
- self.assertHasNextMessage(None)
-
- self.failIf(requestsAll)
-
-
-
- def test_3004_ResendRequest_NonPersistent(self):
-
- myIdentifier = self.client.getData('any-key')
- myRequest = self.client.getRequest(myIdentifier)
- requestsAll = self.client.getRequests()
- self.assertHasNextMessage(consts.Message.ClientGet)
-
- newIdentifier = self.client.resendRequest(myRequest)
-
- # client should remove old request emidiately
- self.failIf(myIdentifier == newIdentifier)
self.failIf(myIdentifier in requestsAll)
- self.failUnless(newIdentifier in requestsAll)
- self.assertHasNextEvent(
- self.client.events.RequestRemoved,
- consts.Message.ClientGet,
- ('RequestStatus', consts.RequestStatus.Removed |
- consts.RequestStatus.RemovedFromQueue |
- consts.RequestStatus.Completed
- ),
- )
-
- self.assertHasNextMessage(consts.Message.ClientGet)
-
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
- del requestsAll[newIdentifier]
self.failIf(requestsAll)
+
-
def test_3005_ResendRequest_Persistent(self):
+ self.connectClient()
- myIdentifier = self.client.getData('any-key', persistence=consts.Persistence.Reboot)
+ 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)
@@ -2601,7 +2446,7 @@
# client should remove request from nodes queue
self.assertHasNextMessage(
- consts.Message.RemovePersistentRequest,
+ consts.Message.RemoveRequest,
('Identifier', myIdentifier)
)
self.assertHasNextMessage(
@@ -2609,9 +2454,13 @@
('Identifier', newIdentifier)
)
self.sendResponseMessage(
- 'PersistentRequestRemoved',
+ 'GetFailed',
+ Code='25',
Identifier=myIdentifier,
)
+
+
+
self.assertHasNextEvent(
self.client.events.RequestRemoved,
consts.Message.ClientGet,
@@ -2632,7 +2481,7 @@
#
#***********************************************************************************
#TODO: testRestoreClientPut and friends
-class TestRestoreRequests(BaseTestClient):
+class Test_restoreRequests(BaseTestClient):
def test_4000_RestorePersistentGet_InvalidClientToken(self):
@@ -2718,13 +2567,15 @@
#TODO: testDDAWriteDenied
#TODO: testDDAWriteDenied_WriteDisallowed
-class TestDDA(BaseTestClient):
+class Test_DDA(BaseTestClient):
def test_5000_DDAWriteDenied(self):
-
+ self.connectClient()
+
# request a file
+ myKey = self.client.key.key('KSK@foo')
myIdentifier = self.client.getFile(
- 'arbitrary-uri',
+ myKey,
os.path.join(DIR, 'DDATest.txt')
)
myRequest = self.client.getRequest(myIdentifier)
@@ -2821,10 +2672,12 @@
class TestCollisions(BaseTestClient):
def test_6000_IdentifierCollision(self):
-
+ self.connectClient()
+
# request a file
+ myKey = self.client.key.key('KSK@foo')
myIdentifier = self.client.getFile(
- 'arbitrary-uri',
+ myKey,
os.path.join(DIR, 'test.txt')
)
myRequest = self.client.getRequest(myIdentifier)
@@ -2863,14 +2716,16 @@
def test_6001_FilenameCollision_HandleRename(self):
-
+ self.connectClient()
+
# request a file
fpath = os.path.join(DIR, 'test.txt')
open(fpath, 'wb').close()
self.tmpfiles.append(fpath)
+ myKey = self.client.key.key('KSK@foo')
myIdentifier = self.client.getFile(
- 'arbitrary-uri',
+ myKey,
fpath,
filenameCollision=consts.FilenameCollision.HandleRename,
)
@@ -2917,14 +2772,16 @@
def test_6002_FilenameCollision_HandleNever(self):
-
+ self.connectClient()
+
# request a file
fpath = os.path.join(DIR, 'test.txt')
open(fpath, 'wb').close()
self.tmpfiles.append(fpath)
+ myKey = self.client.key.key('KSK@foo')
myIdentifier = self.client.getFile(
- 'arbitrary-uri',
+ myKey,
fpath,
filenameCollision=consts.FilenameCollision.HandleNever,
)
@@ -2967,7 +2824,7 @@
#
#***********************************************************************************
#TODO: some tests not yet implemented
-class TestResendRequests(BaseTestClient):
+class Test_resendRequests(BaseTestClient):
def test_resend_CHK(self):
myKey = 'CHK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo'
@@ -3073,11 +2930,11 @@
#***********************************************************************************
#
#***********************************************************************************
-class TestPlugins(BaseTestClient):
+class Test_plugins(BaseTestClient):
def testGet_8000_PluginInfo_Success(self):
-
+ self.connectClient()
myIdentifier = self.client.getPluginInfo('hi there')
myRequest = self.client.getRequest(myIdentifier)
requestsAll = self.client.getRequests()
@@ -3117,6 +2974,7 @@
def test_8001_GetPluginInfo_Failure(self):
+ self.connectClient()
myIdentifier = self.client.getPluginInfo('hi there')
myRequest = self.client.getRequest(myIdentifier)
requestsAll = self.client.getRequests()
@@ -3155,7 +3013,7 @@
def test_8002_SendPluginMessage_Success(self):
-
+ self.connectClient()
myIdentifier = '123456789'
myRequest = self.client.sendPluginMessage('hi there', myIdentifier, {'foo': "bar"})
requestsAll = self.client.getRequests()
@@ -3190,6 +3048,7 @@
def test_8003_GetSendPluginMessage_Failure(self):
+ self.connectClient()
myIdentifier = '1234567889'
myRequest = self.client.sendPluginMessage('hi there', myIdentifier, {'foo': "bar"})
requestsAll = self.client.getRequests()
@@ -3222,6 +3081,7 @@
def test_8003_GetSendPluginMessage_Identifiercollision(self):
+ self.connectClient()
myIdentifier = '1234567889'
myRequest = self.client.sendPluginMessage('hi there', myIdentifier, {'foo': "bar"})
requestsAll = self.client.getRequests()
@@ -3258,27 +3118,31 @@
#***********************************************************************************
#
#***********************************************************************************
-class TestGenerateKeypair(BaseTestClient):
+class Test_generateKeypair(BaseTestClient):
def test_10000_GeberateSSKKeypair(self):
+ self.connectClient()
+
myIdentifier = self.client.generateKeypair(consts.KeyType.SSK)
myRequest = self.client.getRequest(myIdentifier)
requestsAll = self.client.getRequests()
self.assertHasNextMessage(consts.Message.GenerateSSK)
+ priv = self.client.key.key('SSK@' + self.client.key.DummyKeyData + '/priv')
+ pub = self.client.key.key('SSK@' + self.client.key.DummyKeyData + '/pub')
self.sendResponseMessage(
'SSKKeypair',
Identifier=myIdentifier,
- RequestURI='SSK@public',
- InsertURI='SSK@private',
+ RequestURI=pub,
+ InsertURI=priv,
)
msg = self.assertHasNextEvent(
self.client.events.KeypairGenerated,
consts.Message.GenerateSSK,
('Identifier', myIdentifier),
- ('PublicKey','SSK@public'),
- ('PrivateKey','SSK@private'),
+ ('PublicKey',pub),
+ ('PrivateKey',priv),
('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
@@ -3293,24 +3157,30 @@
def test_10001_GeberateUSKKeypair(self):
+ self.connectClient()
+
myIdentifier = self.client.generateKeypair(consts.KeyType.USK)
myRequest = self.client.getRequest(myIdentifier)
requestsAll = self.client.getRequests()
self.assertHasNextMessage(consts.Message.GenerateSSK)
+ priv = self.client.key.key('SSK@' + self.client.key.DummyKeyData + '/priv')
+ pub = self.client.key.key('SSK@' + self.client.key.DummyKeyData + '/pub')
self.sendResponseMessage(
'SSKKeypair',
Identifier=myIdentifier,
- RequestURI='SSK@public',
- InsertURI='SSK@private',
+ RequestURI=pub,
+ InsertURI=priv,
)
+ priv = self.client.key.USK(priv.keyData, filename=priv.filename)
+ pub = self.client.key.USK(pub.keyData, filename=pub.filename)
msg = self.assertHasNextEvent(
self.client.events.KeypairGenerated,
consts.Message.GenerateSSK,
('Identifier', myIdentifier),
- ('PublicKey','USK@public'),
- ('PrivateKey','USK@private'),
+ ('PublicKey',pub),
+ ('PrivateKey',priv),
('RequestStatus', consts.RequestStatus.Success |
consts.RequestStatus.RemovedFromQueue |
consts.RequestStatus.Completed
@@ -3323,44 +3193,46 @@
self.assertHasNextMessage(None)
self.failIf(requestsAll)
-
#***********************************************************************************
#
#***********************************************************************************
-class TestSubscribeUSK(BaseTestClient):
-
-
- def test_11000_Subscribe(self):
- myIdentifier = self.client.subscribeUSK('arbitrary')
+class Test_subscribeUSK(BaseTestClient):
+
+ def test_100_subscribeUSK(self):
+ self.connectClient()
+
+ myKey = self.client.key.USK(client.key.DummyKeyData, 'foo', 0)
+ myIdentifier = self.client.subscribeUSK(myKey)
myRequest = self.client.getRequest(myIdentifier)
requestsAll = self.client.getRequests()
-
self.failUnless(myIdentifier in requestsAll)
- self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed)
+ myRequest = self.client.getRequest(myIdentifier)
+ self.assertEqual(myRequest['RequestType'], self.client.consts.RequestType.SubscribeUSK)
+
+ self.assertHasNextMessage(
+ 'SubscribeUSK',
+ ('URI', myKey),
+ )
+ self.failUnless(myIdentifier in requestsAll)
- self.assertHasNextMessage(consts.Message.SubscribeUSK)
+ # usk update requests are permanent, so the completed flag shuld always be set
+ myRequest['RequestStatus'] == self.client.consts.RequestStatus.Completed
+
self.sendResponseMessage(
'SubscribedUSKUpdate',
- Identifier=myIdentifier,
Edition=99,
- URI='arbitryry/99/',
+ Identifier=myIdentifier,
+ URI=myKey
)
-
- msg = self.assertHasNextEvent(
+
+ self.assertHasNextEvent(
self.client.events.USKUpdated,
- consts.Message.SubscribedUSKUpdate,
- ('Identifier', myIdentifier),
+ 'SubscribeUSK',
('Edition', 99),
- ('URI', 'arbitryry/99/'),
+ ('Identifier', myIdentifier),
+ ('URI', myKey),
)
- self.assertHasNextEvent(None)
- self.assertHasNextMessage(None)
-
- del requestsAll[myIdentifier]
- self.failIf(requestsAll)
-
-
-
+
#*********************************************************************************
#
#*********************************************************************************
@@ -3386,19 +3258,18 @@
Test_getData,
Test_getFile,
Test_getKeyInfo,
- Test_subscribeUSK,
+ Test_disconnectReason,
- #TestDisconnectReason,
- #TestClientGet,
- #TestClientPut,
- #TestRequests,
- #TestRestoreRequests,
- #TestResendRequests,
- #TestDDA,
- #TestCollisions,
- #TestPlugins,
- #TestGenerateKeypair,
- #TestSubscribeUSK,
+ #Test_clientGet,
+ #Test_clientPut,
+ Test_requests,
+ #Test_restoreRequests,
+ #Test_resendRequests,
+ Test_DDA,
+ TestCollisions,
+ Test_plugins,
+ Test_generateKeypair,
+ Test_subscribeUSK,
)
suite = unittest.TestSuite()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-06-29 16:21:12
|
Revision: 429
http://fclient.svn.sourceforge.net/fclient/?rev=429&view=rev
Author: jUrner
Date: 2008-06-29 09:21:17 -0700 (Sun, 29 Jun 2008)
Log Message:
-----------
added tests for putData and putRedirect
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-29 16:21:01 UTC (rev 428)
+++ trunk/sandbox/fcp2/test_fcp/test_client.py 2008-06-29 16:21:17 UTC (rev 429)
@@ -1887,16 +1887,18 @@
#***********************************************************************************
#TODO:
#
-# SSK@, USK@
-# putFile / PutDir TestDDA
+# x. check if TargetFilename handling is ok for CHKs
+#
-class Test_clientPut(BaseTestClient):
-
- def testPutRedirect_Success(self):
- # request a arbitrary file
- myIdentifier = self.client.putRedirect(
- 'my-redirect-name',
- 'SSK@arbitrary-uri',
+class Test_putData(BaseTestClient):
+
+ def test_putData_Success(self):
+ self.connectClient()
+
+ myKey = self.client.key.KSK('foo')
+ myIdentifier = self.client.putData(
+ myKey,
+ 'any data here'
)
myRequest = self.client.getRequest(myIdentifier)
requestsAll = self.client.getRequests()
@@ -1907,7 +1909,7 @@
self.sendResponseMessage(
'PutSuccessful',
Identifier=myIdentifier,
- URI='KSK@my-redirect-name'
+ URI=myKey
)
self.assertHasNextEvent(
@@ -1921,15 +1923,18 @@
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
- self.failIf(requestsAll)
-
+ self.failIf(requestsAll)
- def testPutRedirect_Failure(self):
- # request a arbitrary file
- myIdentifier = self.client.putRedirect(
- 'my-redirect-name',
- 'SSK@arbitrary-uri',
+
+ def test_putData_Failure(self):
+ self.connectClient()
+
+ myKey = self.client.key.KSK('foo')
+ myIdentifier = self.client.putData(
+ myKey,
+ 'any data here'
)
+
myRequest = self.client.getRequest(myIdentifier)
requestsAll = self.client.getRequests()
@@ -1954,12 +1959,23 @@
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
self.failIf(requestsAll)
-
- def testCHKPutData_Success(self):
+
+#***********************************************************************************
+#
+#***********************************************************************************
+class Test_putRedirect(BaseTestClient):
+
+
+ def testPutRedirect_Success(self):
+ self.connectClient()
+
# request a arbitrary file
- myIdentifier = self.client.chkPutData(
- 'arbitrary data'
+ 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()
@@ -1970,7 +1986,7 @@
self.sendResponseMessage(
'PutSuccessful',
Identifier=myIdentifier,
- URI='CHK@my-redirect-name'
+ URI=myRedirect
)
self.assertHasNextEvent(
@@ -1987,10 +2003,15 @@
self.failIf(requestsAll)
- def testCHKPutData_Failure(self):
+ def testPutRedirect_Failure(self):
+ self.connectClient()
+
# request a arbitrary file
- myIdentifier = self.client.chkPutData(
- 'arbitrary data'
+ 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()
@@ -2016,9 +2037,13 @@
self.assertHasNextEvent(None)
self.assertHasNextMessage(None)
self.failIf(requestsAll)
-
- def testCHKPutDir_Success(self):
+
+
+
+class Test_clientPut(BaseTestClient):
+
+ def XXXtestCHKPutDir_Success(self):
# request a arbitrary file
myIdentifier = self.client.chkPutDir(
'myDirectory'
@@ -2049,7 +2074,7 @@
self.failIf(requestsAll)
- def testCHKPutDir_Failure(self):
+ def XXXtestCHKPutDir_Failure(self):
# request a arbitrary file
myIdentifier = self.client.chkPutDir(
'myDirectory'
@@ -2080,7 +2105,7 @@
self.failIf(requestsAll)
- def testCHKPutFile_Success(self):
+ def XXXtestCHKPutFile_Success(self):
# request a arbitrary file
myIdentifier = self.client.chkPutFile(
'myFile.txt'
@@ -2111,7 +2136,7 @@
self.failIf(requestsAll)
- def testCHKPutFile_Failure(self):
+ def XXXtestCHKPutFile_Failure(self):
# request a arbitrary file
myIdentifier = self.client.chkPutFile(
'myFile.txt'
@@ -2143,7 +2168,7 @@
- def testCHKPutMultiple_Success(self):
+ def XXXtestCHKPutMultiple_Success(self):
items = [
{
@@ -2221,7 +2246,7 @@
self.failIf(requestsAll)
- def testCHKPutMultiple_ItemErrors(self):
+ def XXXtestCHKPutMultiple_ItemErrors(self):
# upload directory is not allowed
@@ -3245,23 +3270,32 @@
Test_iterConnect,
Test_CloseConnectionDuplicateClientName,
Test_closeNode,
+ Test_disconnectReason,
+
Test_get_setConnectionName,
Test_get_setDebugVerbosity,
Test_startNode,
Test_versionCheckNodeHello,
+
Test_handleMessage,
Test_next,
Test_run,
Test_sendMessage,
Test_getConfig,
Test_modifyConfig,
+
Test_getData,
Test_getFile,
Test_getKeyInfo,
- Test_disconnectReason,
+ Test_putData,
+ Test_putRedirect,
+
+ #Test_putData,
+ #Test_clientPut,
+
#Test_clientGet,
- #Test_clientPut,
+
Test_requests,
#Test_restoreRequests,
#Test_resendRequests,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
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.
|
|
From: <jU...@us...> - 2008-06-30 11:02:34
|
Revision: 441
http://fclient.svn.sourceforge.net/fclient/?rev=441&view=rev
Author: jUrner
Date: 2008-06-30 04:01:49 -0700 (Mon, 30 Jun 2008)
Log Message:
-----------
refactor plugin message 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 09:38:21 UTC (rev 440)
+++ trunk/sandbox/fcp2/test_fcp/test_client.py 2008-06-30 11:01:49 UTC (rev 441)
@@ -2799,10 +2799,9 @@
#***********************************************************************************
#
#***********************************************************************************
-class Test_plugins(BaseTestClient):
+class Test_getPluginInfo(BaseTestClient):
-
- def testGet_8000_PluginInfo_Success(self):
+ def test_getPluginInfo_Success(self):
self.connectClient()
myIdentifier = self.client.getPluginInfo('hi there')
myRequest = self.client.getRequest(myIdentifier)
@@ -2839,10 +2838,9 @@
self.assertHasNextMessage(None)
self.failIf(requestsAll)
-
- def test_8001_GetPluginInfo_Failure(self):
+ def test_getPluginInfo_Failure(self):
self.connectClient()
myIdentifier = self.client.getPluginInfo('hi there')
myRequest = self.client.getRequest(myIdentifier)
@@ -2879,9 +2877,13 @@
self.assertHasNextMessage(None)
self.failIf(requestsAll)
-
-
- def test_8002_SendPluginMessage_Success(self):
+
+#***********************************************************************************
+#
+#***********************************************************************************
+class Test_sendPluginMessage(BaseTestClient):
+
+ def test_sendPluginMessage_Success(self):
self.connectClient()
myIdentifier = '123456789'
myRequest = self.client.sendPluginMessage('hi there', myIdentifier, {'foo': "bar"})
@@ -2916,7 +2918,7 @@
self.failIf(requestsAll)
- def test_8003_GetSendPluginMessage_Failure(self):
+ def test_sendPluginMessage_Failure(self):
self.connectClient()
myIdentifier = '1234567889'
myRequest = self.client.sendPluginMessage('hi there', myIdentifier, {'foo': "bar"})
@@ -2949,7 +2951,7 @@
self.failIf(requestsAll)
- def test_8003_GetSendPluginMessage_Identifiercollision(self):
+ def test_sendPluginMessage_Identifiercollision(self):
self.connectClient()
myIdentifier = '1234567889'
myRequest = self.client.sendPluginMessage('hi there', myIdentifier, {'foo': "bar"})
@@ -3140,7 +3142,8 @@
Test_restoreRequests,
Test_DDA,
TestCollisions,
- Test_plugins,
+ Test_getPluginInfo,
+ Test_sendPluginMessage,
Test_generateKeypair,
Test_subscribeUSK,
)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jU...@us...> - 2008-06-30 11:12:48
|
Revision: 442
http://fclient.svn.sourceforge.net/fclient/?rev=442&view=rev
Author: jUrner
Date: 2008-06-30 04:12:57 -0700 (Mon, 30 Jun 2008)
Log Message:
-----------
added boilerplate code for 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 11:01:49 UTC (rev 441)
+++ trunk/sandbox/fcp2/test_fcp/test_client.py 2008-06-30 11:12:57 UTC (rev 442)
@@ -2795,10 +2795,46 @@
#***********************************************************************************
#
#***********************************************************************************
-#TODO: class TestNodeAndPeers(BaseTestConnectedClient):
+#TODO: not tested
+class Test_getNode(BaseTestClient): pass
#***********************************************************************************
#
#***********************************************************************************
+#TODO: not tested
+class Test_listPeer(BaseTestClient): pass
+#***********************************************************************************
+#
+#***********************************************************************************
+#TODO: not tested
+class Test_listPeers(BaseTestClient): pass
+#***********************************************************************************
+#
+#***********************************************************************************
+#TODO: not tested
+class Test_listPeerNotes(BaseTestClient): pass
+#***********************************************************************************
+#
+#***********************************************************************************
+#TODO: not tested
+class Test_modifyPeer(BaseTestClient): pass
+#***********************************************************************************
+#
+#***********************************************************************************
+#TODO: not tested
+class Test_modifyPeer(BaseTestClient): pass
+#***********************************************************************************
+#
+#***********************************************************************************
+#TODO: not tested
+class Test_modifyPeerNote(BaseTestClient): pass
+#***********************************************************************************
+#
+#***********************************************************************************
+#TODO: not tested
+class Test_removePeer(BaseTestClient): pass
+#***********************************************************************************
+#
+#***********************************************************************************
class Test_getPluginInfo(BaseTestClient):
def test_getPluginInfo_Success(self):
@@ -3138,14 +3174,21 @@
Test_modifyRequest,
Test_removeRequest,
+ Test_restoreRequests,
- Test_restoreRequests,
Test_DDA,
TestCollisions,
Test_getPluginInfo,
Test_sendPluginMessage,
Test_generateKeypair,
Test_subscribeUSK,
+
+ Test_getNode,
+ Test_listPeer,
+ Test_listPeers,
+ Test_listPeerNotes,
+ Test_modifyPeerNote,
+ Test_removePeer,
)
suite = unittest.TestSuite()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|