fclient-commit Mailing List for fclient (Page 20)
Status: Pre-Alpha
Brought to you by:
jurner
You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(23) |
Nov
(54) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(17) |
Feb
(209) |
Mar
(63) |
Apr
(31) |
May
(7) |
Jun
(39) |
Jul
(390) |
Aug
(122) |
Sep
(6) |
Oct
|
Nov
|
Dec
|
From: <jU...@us...> - 2008-07-04 08:25:48
|
Revision: 487 http://fclient.svn.sourceforge.net/fclient/?rev=487&view=rev Author: jUrner Date: 2008-07-04 01:25:43 -0700 (Fri, 04 Jul 2008) Log Message: ----------- combed over keys. many a changes.. Modified Paths: -------------- trunk/fcp2/src/fcp2/key.py Modified: trunk/fcp2/src/fcp2/key.py =================================================================== --- trunk/fcp2/src/fcp2/key.py 2008-07-02 10:00:16 UTC (rev 486) +++ trunk/fcp2/src/fcp2/key.py 2008-07-04 08:25:43 UTC (rev 487) @@ -24,6 +24,9 @@ _ReMatchExact = '\A%s\Z' KeyTypesAll = {} +# save url chars as defined in [freenet/src/support/URLEncoder.java] +SafeURLChars = '*-_./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz' + #************************************************************************************** # freenet base64 for keys #************************************************************************************** @@ -39,9 +42,7 @@ altchars = '-~' # padding may be ommitted or not - padding = 4 - len(string) % 4 - if padding: - string += '=' * padding + string += '=' * (len(string) % 4) return base64.b64decode(string, altchars) @@ -56,7 +57,13 @@ return result #************************************************************************************** -# +# freenet keys +# +# KeyType@base64(routingbKey), base64(cryptoKey), base64(extra) +# +# Freenet seems to use base64 without padding along with the following altchars for urlsave +# encode: - for + and ~ for / see: [freenet/support/base64.java] +# #************************************************************************************** #TODO: too bad, can not move this to types.py ...cross import class TypeKey(object): @@ -69,12 +76,12 @@ >>> key.toString() 'CHK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo/' - >>> key = TypeKey.fcpToPython('SSK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo') + >>> key = TypeKey.fcpToPython('SSK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo-1') >>> key.toString() - 'SSK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo/' - >>> key = TypeKey.fcpToPython('SSK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo/') + 'SSK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo-1/' + >>> key = TypeKey.fcpToPython('SSK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo-1/') >>> key.toString() - 'SSK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo/' + 'SSK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo-1/' >>> key = TypeKey.fcpToPython('USK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo/0') >>> key.toString() @@ -115,19 +122,7 @@ return key.toString() #**************************************************************************************** -# freenet keys # -# KeyType@32 bytes hash, 32 bytes encryption key, 5 bytes extra -# -# all byte components are base64 encoded. Freenet uses base64 without padding -# along with the following altchars for urlsave encode: - for + and ~ for / -# see: freenet/support/base64.java -# -# so a key as the user gets it to see is: -# KeyType@43 bytes, 43 bytes, 7 bytes ..of [A-Za-z0-9\-~] -# -# see: [freenet/src/support/base64.java] -# #*************************************************************************************** class _KeyMeta(type): """Metaclass for freenet keys""" @@ -181,31 +176,31 @@ _key_pattern_ = ''' (?P<keyType>CHK@) (?P<keyData> - (?P<hash>[a-z0-9\-~]{43}), - (?P<cryptoKey>[a-z0-9\-~]{43}), - (?P<extra>[a-z0-9\-~]{7}) + (?P<routingKey>[a-z0-9\-~]+?), + (?P<cryptoKey>[a-z0-9\-~]+?), + (?P<extra>[a-z0-9\-~]+?) ) - (?: / (?P<filename>[^/]+?)? (?: /)?)? + (?: / (?P<docName>[^/]+?)? (?: /)?)? ''' KeyType = consts.ConstKeyType.CHK KeyPattern = re.compile(_key_pattern_, re.I | re.X) ExactKeyPattern = re.compile(_ReMatchExact % _key_pattern_, re.I | re.X) - def __init__(self, keyData=None, filename=None): + def __init__(self, keyData=None, docName=None): """Creates a CHK key @param keyData: (str) key data or None - @param filename: (str) filename to add to the key or None + @param docName: (str) docName to add to the key or None """ self.keyData = keyData - self.filename = filename + self.docName = docName def toString(self): out = self.KeyType if self.keyData is not None: out += self.keyData + '/' - if self.filename is not None: - out += self.filename + '/' + if self.docName is not None: + out += self.docName + '/' return out @classmethod @@ -213,7 +208,7 @@ result = clss.ExactKeyPattern.match(stripKey(string)) if result is not None: d = result.groupdict() - key = clss(d['keyData'], filename=d['filename']) + key = clss(d['keyData'], docName=d['docName']) return key @@ -221,29 +216,34 @@ _key_pattern_ = ''' (?P<keyType>SSK@) (?P<keyData> - (?P<hash>[a-z0-9\-~]{43}), - (?P<cryptoKey>[a-z0-9\-~]{43}), - (?P<extra>[a-z0-9\-~]{7}) + (?P<routingKey>[a-z0-9\-~]+?), + (?P<cryptoKey>[a-z0-9\-~]+?), + (?P<extra>[a-z0-9\-~]+?) ) ( - (?: / (?P<filename>[^/]+?)) - (?: /)? + (?: / (?P<docName>[^/]+?)) + - + (?: (?P<edition>[\d]+)) )? + (?: /)? ''' KeyType = consts.ConstKeyType.SSK KeyPattern = re.compile(_key_pattern_, re.I | re.X) ExactKeyPattern = re.compile(_ReMatchExact % _key_pattern_, re.I | re.X) - def __init__(self, keyData, filename=None): - self.filename = filename + def __init__(self, keyData, docName=None, edition=0): + self.docName = docName + self.edition = edition self.keyData = keyData def toString(self): out = self.KeyType if self.keyData is not None: out += self.keyData + '/' - if self.filename is not None: - out += self.filename + '/' + if self.docName is not None: + if self.edition is None: + raise ValueError('no edition number specified') + out += self.docName + '-' + str(self.edition) + '/' return out @classmethod @@ -251,14 +251,17 @@ result = clss.ExactKeyPattern.match(stripKey(string)) if result is not None: d = result.groupdict() - return clss(d['keyData'], d['filename']) + edition = d['edition'] + if edition is not None: + edition = int(edition) + return clss(d['keyData'], d['docName'], edition=edition) class KeyKSK(_KeyBase): _key_pattern_ = ''' (?P<keyType>KSK@) - (?P<filename>[^/]+?) + (?P<docName>[^/]+?) (?: /)? ''' KeyType = consts.ConstKeyType.KSK @@ -266,13 +269,13 @@ ExactKeyPattern = re.compile(_ReMatchExact % _key_pattern_, re.I | re.X) - def __init__(self, filename): - self.filename = filename + def __init__(self, docName): + self.docName = docName def toString(self): out = self.KeyType - if self.filename is not None: - out += self.filename + '/' + if self.docName is not None: + out += self.docName + '/' return out @classmethod @@ -280,20 +283,22 @@ result = clss.ExactKeyPattern.match(stripKey(string)) if result is not None: d = result.groupdict() - return clss(filename=d['filename']) + return clss(docName=d['docName']) - +#TODO: is docName obligatory? class KeyUSK(_KeyBase): _key_pattern_ = ''' (?P<keyType>USK@) (?P<keyData> - (?P<hash>[a-z0-9\-~]{43}), - (?P<cryptoKey>[a-z0-9\-~]{43}), - (?P<extra>[a-z0-9\-~]{7}) + (?P<routingKey>[a-z0-9\-~]+?), + (?P<cryptoKey>[a-z0-9\-~]+?), + (?P<extra>[a-z0-9\-~]+?) ) - (?: / (?P<filename>[^/]+?) ) - (?: / (?P<edition>[\d]+)) + ( + (?: / (?P<docName>[^/]+?) ) + (?: / (?P<edition>-?[\d]+)) + )? (?: /)? ''' @@ -301,23 +306,23 @@ KeyPattern = re.compile(_key_pattern_, re.I | re.X) ExactKeyPattern = re.compile(_ReMatchExact % _key_pattern_, re.I | re.X) - def __init__(self, keyData, filename=None, edition=0): + def __init__(self, keyData, docName=None, edition=0): """Creates a USK key @param keyData: (str) public key - @param filename: (str) filename + @param docName: (str) docName @param edition: (int) edition number """ self.edition = edition - self.filename = filename + self.docName = docName self.keyData = keyData def toString(self): out = self.KeyType if self.keyData is not None: out += self.keyData + '/' - if self.filename is not None: - out += self.filename + '/' + if self.docName is not None: + out += self.docName + '/' if self.edition is not None: out += str(self.edition) + '/' return out @@ -327,7 +332,10 @@ result = clss.ExactKeyPattern.match(stripKey(string)) if result is not None: d = result.groupdict() - return clss(d['keyData'], d['filename'], edition=d['edition']) + edition = d['edition'] + if edition is not None: + edition = int(edition) + return clss(d['keyData'], d['docName'], edition=edition) __all__ = [i for i in dir() if i[0].isupper() and not i.startswith('_')] @@ -336,4 +344,4 @@ #***************************************************************************** if __name__ == '__main__': import doctest - print 'doctests failed: %s/%s' % doctest.testmod() + #print 'doctests failed: %s/%s' % doctest.testmod() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-02 10:00:08
|
Revision: 486 http://fclient.svn.sourceforge.net/fclient/?rev=486&view=rev Author: jUrner Date: 2008-07-02 03:00:16 -0700 (Wed, 02 Jul 2008) Log Message: ----------- fixed doctests Modified Paths: -------------- trunk/fcp2/src/fcp2/key.py Modified: trunk/fcp2/src/fcp2/key.py =================================================================== --- trunk/fcp2/src/fcp2/key.py 2008-07-02 09:59:48 UTC (rev 485) +++ trunk/fcp2/src/fcp2/key.py 2008-07-02 10:00:16 UTC (rev 486) @@ -62,31 +62,31 @@ class TypeKey(object): """key type for type conversions - >>> key = FcpTypeKey.fcpToPython('CHK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo') + >>> key = TypeKey.fcpToPython('CHK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo') >>> key.toString() 'CHK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo/' - >>> key = FcpTypeKey.fcpToPython('CHK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo/') + >>> key = TypeKey.fcpToPython('CHK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo/') >>> key.toString() 'CHK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo/' - >>> key = FcpTypeKey.fcpToPython('SSK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo') + >>> key = TypeKey.fcpToPython('SSK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo') >>> key.toString() 'SSK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo/' - >>> key = FcpTypeKey.fcpToPython('SSK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo/') + >>> key = TypeKey.fcpToPython('SSK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo/') >>> key.toString() 'SSK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo/' - >>> key = FcpTypeKey.fcpToPython('USK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo/0') + >>> key = TypeKey.fcpToPython('USK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo/0') >>> key.toString() 'USK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo/0/' - >>> key = FcpTypeKey.fcpToPython('USK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo/0/') + >>> key = TypeKey.fcpToPython('USK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo/0/') >>> key.toString() 'USK@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA/foo/0/' - >>> key = FcpTypeKey.fcpToPython('KSK@abcde') + >>> key = TypeKey.fcpToPython('KSK@abcde') >>> key.toString() 'KSK@abcde/' - >>> key = FcpTypeKey.fcpToPython('KSK@abcde/') + >>> key = TypeKey.fcpToPython('KSK@abcde/') >>> key.toString() 'KSK@abcde/' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-02 09:59:39
|
Revision: 485 http://fclient.svn.sourceforge.net/fclient/?rev=485&view=rev Author: jUrner Date: 2008-07-02 02:59:48 -0700 (Wed, 02 Jul 2008) Log Message: ----------- beautify Modified Paths: -------------- trunk/fcp2/src/fcp2/key.py Modified: trunk/fcp2/src/fcp2/key.py =================================================================== --- trunk/fcp2/src/fcp2/key.py 2008-07-02 07:05:37 UTC (rev 484) +++ trunk/fcp2/src/fcp2/key.py 2008-07-02 09:59:48 UTC (rev 485) @@ -54,34 +54,6 @@ if result.startswith('/'): result = result[1:] return result - -#**************************************************************************************** -# freenet keys -# -# KeyType@32 bytes hash, 32 bytes encryption key, 5 bytes extra -# -# all byte components are base64 encoded. Freenet uses base64 without padding -# along with the following altchars for urlsave encode: - for + and ~ for / -# see: freenet/support/base64.java -# -# so a key as the user gets it to see is: -# KeyType@43 bytes, 43 bytes, 7 bytes ..of [A-Za-z0-9\-~] -# -# see: [freenet/src/support/base64.java] -# -#*************************************************************************************** -class _KeyMeta(type): - """Metaclass for freenet keys""" - - def __new__(klass, name, bases, kws): - """Registers a key type to L{KeyTypesAll} - @note: if KeyType of the the key type is None it will not get registered - """ - - newClass = type.__new__(klass, name, bases, kws) - if newClass.KeyType is not None: - KeyTypesAll[newClass.KeyType] = newClass - return newClass #************************************************************************************** # @@ -141,6 +113,34 @@ @return: (str) fcp key """ return key.toString() + +#**************************************************************************************** +# freenet keys +# +# KeyType@32 bytes hash, 32 bytes encryption key, 5 bytes extra +# +# all byte components are base64 encoded. Freenet uses base64 without padding +# along with the following altchars for urlsave encode: - for + and ~ for / +# see: freenet/support/base64.java +# +# so a key as the user gets it to see is: +# KeyType@43 bytes, 43 bytes, 7 bytes ..of [A-Za-z0-9\-~] +# +# see: [freenet/src/support/base64.java] +# +#*************************************************************************************** +class _KeyMeta(type): + """Metaclass for freenet keys""" + + def __new__(klass, name, bases, kws): + """Registers a key type to L{KeyTypesAll} + @note: if KeyType of the the key type is None it will not get registered + """ + + newClass = type.__new__(klass, name, bases, kws) + if newClass.KeyType is not None: + KeyTypesAll[newClass.KeyType] = newClass + return newClass def Key(string): @@ -216,7 +216,6 @@ key = clss(d['keyData'], filename=d['filename']) return key - class KeySSK(_KeyBase): _key_pattern_ = ''' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-02 07:05:30
|
Revision: 484 http://fclient.svn.sourceforge.net/fclient/?rev=484&view=rev Author: jUrner Date: 2008-07-02 00:05:37 -0700 (Wed, 02 Jul 2008) Log Message: ----------- fixed broken docstrings Modified Paths: -------------- trunk/fcp2/src/fcp2/types.py Modified: trunk/fcp2/src/fcp2/types.py =================================================================== --- trunk/fcp2/src/fcp2/types.py 2008-07-02 07:05:32 UTC (rev 483) +++ trunk/fcp2/src/fcp2/types.py 2008-07-02 07:05:37 UTC (rev 484) @@ -130,7 +130,7 @@ class TypeTimeDelta(Type): """Time durations passed as tuple((int) number, modifier). - For modifiers see : L{consts.TimeDeltaPostfix}. Number can be -1 + For modifiers see : L{consts.ConstTimeDeltaPostfix}. Number can be -1 aswell, meaniong 'not set' or 'undefined'. >>> TypeTimeDelta.fcpToPython('1000day') @@ -172,7 +172,7 @@ class TypeByteAmount(Type): """Byte amounts are passed as tuple((int, float) number, modifier). - For modifiers see : L{consts.ByteAmountPostfix}. Number of bytes can be -1 + For modifiers see : L{consts.ConstByteAmountPostfix}. Number of bytes can be -1 aswell, meaniong 'not set' or 'undefined'. >>> TypeByteAmount.fcpToPython('1000k') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-02 07:05:23
|
Revision: 483 http://fclient.svn.sourceforge.net/fclient/?rev=483&view=rev Author: jUrner Date: 2008-07-02 00:05:32 -0700 (Wed, 02 Jul 2008) Log Message: ----------- fixed broken docstrings Modified Paths: -------------- trunk/fcp2/src/fcp2/test_fcp/test_client.py Modified: trunk/fcp2/src/fcp2/test_fcp/test_client.py =================================================================== --- trunk/fcp2/src/fcp2/test_fcp/test_client.py 2008-07-02 07:05:23 UTC (rev 482) +++ trunk/fcp2/src/fcp2/test_fcp/test_client.py 2008-07-02 07:05:32 UTC (rev 483) @@ -113,7 +113,7 @@ ): """Tests if we received a certain event from the client @param expectedEvent: the event expected or None if no event is expected - @param messageName: expected mesageName or None if no message is expected + @param message: expected mesage or None if no message is expected @param param1: tuple(paramName, value) of a message parameter expected @param data: data expected along with the message or None @@ -174,7 +174,7 @@ data=None ): """Tests if we received a certain message from the client - @param messageName: expected mesageName or None if no message is expected + @param message: expected mesage or None if no message is expected @param param1: tuple(paramName, value) of a message parameter expected @param data: data expected along with the message or None This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-02 07:05:19
|
Revision: 482 http://fclient.svn.sourceforge.net/fclient/?rev=482&view=rev Author: jUrner Date: 2008-07-02 00:05:23 -0700 (Wed, 02 Jul 2008) Log Message: ----------- fixed broken docstrings Modified Paths: -------------- trunk/fcp2/src/fcp2/key.py Modified: trunk/fcp2/src/fcp2/key.py =================================================================== --- trunk/fcp2/src/fcp2/key.py 2008-07-02 07:05:11 UTC (rev 481) +++ trunk/fcp2/src/fcp2/key.py 2008-07-02 07:05:23 UTC (rev 482) @@ -145,7 +145,7 @@ def Key(string): """creates a key object from a string - @return: L{KeyBase} + @return: (L{_KeyBase}) """ return TypeKey.fcpToPython(string) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-02 07:05:09
|
Revision: 481 http://fclient.svn.sourceforge.net/fclient/?rev=481&view=rev Author: jUrner Date: 2008-07-02 00:05:11 -0700 (Wed, 02 Jul 2008) Log Message: ----------- fixed broken docstrings Modified Paths: -------------- trunk/fcp2/src/fcp2/iohandler.py Modified: trunk/fcp2/src/fcp2/iohandler.py =================================================================== --- trunk/fcp2/src/fcp2/iohandler.py 2008-07-02 07:05:02 UTC (rev 480) +++ trunk/fcp2/src/fcp2/iohandler.py 2008-07-02 07:05:11 UTC (rev 481) @@ -48,7 +48,7 @@ @param kwargs: any additional keyword arguments passed to L{IOHandler.connect} @return: always None - @raise L{consts.IOConnectFailedError}: in case something goes wrong + @raise L{consts.ErrorIOConnectFailed}: in case something goes wrong """ raise consts.ErrorIOConnectFailed('Failed', consts.ConstLogger.IO.error) @@ -56,8 +56,8 @@ """Should read n bytes from the device @return: always None - @raise L{consts.IOBrokenError}: in case something goes wrong - @raise L{consts.IOTimeoutError}: if the read operation times out + @raise L{consts.ErrorIOBroken}: in case something goes wrong + @raise L{consts.ErrorIOTimeout}: if the read operation times out """ raise consts.ErrorIOBroken('Broken', consts.ConstLogger.IO.error) @@ -65,7 +65,7 @@ """Should write bytes to the device @return: always None - @raise L{consts.IOBrokenError}: in case something goes wrong + @raise L{consts.ErrorIOBroken}: in case something goes wrong """ raise consts.ErrorIOBroken('Broken', consts.ConstLogger.IO.error) @@ -73,7 +73,7 @@ """Should close the io device @return: always None - @raise L{consts.IOClosedError}: if the device is already closed + @raise L{consts.ErrorIOClosed}: if the device is already closed """ raise consts.ErrorIOClosed('Closed', consts.ConstLogger.IO.error) @@ -265,9 +265,9 @@ @return: (Message) next message from the socket - @raise IOBrokenError: (L{consts.IOBrokenError}) if the io breaks unexpectedly - @raise IOTimeoutError: (L{consts.IOTimeoutError}) if no message is in the io - @raise MessageParseError: (L{consts.IMessageParseError}) if the message is invalid + @raise IOBrokenError: (L{consts.ErrorIOBroken}) if the io breaks unexpectedly + @raise IOTimeoutError: (L{consts.ErrorIOTimeout}) if no message is in the io + @raise MessageParseError: (L{consts.ErrorMessageParse}) if the message is invalid @note: if something goes wrong the according exception is raised """ @@ -341,7 +341,7 @@ """Sends a message to freenet @param msg: (Message) message to send @return: Message - @raise L{consts.IOBrokenError}: if the connection to the io dies unexpectedly + @raise L{consts.ErrorIOBroken}: if the connection to the io dies unexpectedly """ consts.ConstLogger.IOHandler.debug(consts.ConstLogMessages.Sending + msg.pprint()) self.io.write(msg.toString()) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-02 07:04:56
|
Revision: 480 http://fclient.svn.sourceforge.net/fclient/?rev=480&view=rev Author: jUrner Date: 2008-07-02 00:05:02 -0700 (Wed, 02 Jul 2008) Log Message: ----------- fixed broken docstrings Modified Paths: -------------- trunk/fcp2/src/fcp2/events.py Modified: trunk/fcp2/src/fcp2/events.py =================================================================== --- trunk/fcp2/src/fcp2/events.py 2008-07-02 07:04:52 UTC (rev 479) +++ trunk/fcp2/src/fcp2/events.py 2008-07-02 07:05:02 UTC (rev 480) @@ -113,11 +113,11 @@ The 'FcModified' member of the request will contain a dict indicating wich aspect of the request was modified. - The dict is a mapping of one or more [L{consts.RequestModified}] flag to the modified value. - Modified value will always be None, except when the aspect is [L{consts.RequestModified.Identifier}] - or [L{consts.RequestModified.Filename}] + The dict is a mapping of one or more [L{consts.ConstRequestModified}] flag to the modified value. + Modified value will always be None, except when the aspect is [L{consts.ConstRequestModified.Identifier}] + or [L{consts.ConstRequestModified.Filename}] - @note: due to internal reasons the [L{consts.RequestModified.PersistentUserData}] member will + @note: due to internal reasons the [L{consts.ConstRequestModified.PersistentUserData}] member will always be present """ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-02 07:04:43
|
Revision: 479 http://fclient.svn.sourceforge.net/fclient/?rev=479&view=rev Author: jUrner Date: 2008-07-02 00:04:52 -0700 (Wed, 02 Jul 2008) Log Message: ----------- fixed broken docstrings Modified Paths: -------------- trunk/fcp2/src/fcp2/config.py Modified: trunk/fcp2/src/fcp2/config.py =================================================================== --- trunk/fcp2/src/fcp2/config.py 2008-07-02 07:04:45 UTC (rev 478) +++ trunk/fcp2/src/fcp2/config.py 2008-07-02 07:04:52 UTC (rev 479) @@ -23,7 +23,7 @@ ConfigItems carry a values dict where the actual values for a key are stored. -Values can be accessed by specifying the desired value class (see L{consts.ConfigValueClass}):: +Values can be accessed by specifying the desired value class (see L{ConfigValueClass}):: value, valueType = configItem.values[consts.ConfigValueClass.Current] @@ -41,8 +41,8 @@ Note that Fcp passes some basic information about value types. This package does a bit more work and passes detailed information about the value type (as far as it is -known) as one of the L{types.FcpType} subclasses. Unknown value types are passed -as L{types.FcpType}. +known) as one of the L{types.Type} subclasses. Unknown value types are passed +as L{types.Type}. """ import os, sys @@ -402,7 +402,7 @@ @return: (bool) True if the key has been added, False otherwise @note: if the item does not already exist it is created - @note: if the key is unknown its type will always be set to L{types.FcpType} + @note: if the key is unknown its type will always be set to L{types.Type} """ paramClass, components = _ConfigMessageParamTypes.splitParamClass(key) paramType = _ConfigMessageParamTypes.get(key, None) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-02 07:04:37
|
Revision: 478 http://fclient.svn.sourceforge.net/fclient/?rev=478&view=rev Author: jUrner Date: 2008-07-02 00:04:45 -0700 (Wed, 02 Jul 2008) Log Message: ----------- fixed broken docstrings Modified Paths: -------------- trunk/fcp2/src/fcp2/client.py Modified: trunk/fcp2/src/fcp2/client.py =================================================================== --- trunk/fcp2/src/fcp2/client.py 2008-07-01 18:48:31 UTC (rev 477) +++ trunk/fcp2/src/fcp2/client.py 2008-07-02 07:04:45 UTC (rev 478) @@ -432,7 +432,7 @@ @param duration: (int) how many seconds try to connect before giving up @param timeout: (int) how much time to wait before another attempt to connect - @return: (L{message.MsgMessage}) NodeHello or None if no connection could be established + @return: (L{message.MsgNodeHello}) or None if no connection could be established """ nodeHello = None for nodeHello in self.iterConnect(host=host, port=port, duration=duration, timeout=timeout): @@ -454,7 +454,7 @@ @param duration: (int) how many seconds try to connect before giving up @param timeout: (int) how much time to wait before another attempt to connect - @return: (L{message.MsgMessage}) NodeHello if successful, None otherwise for the next iteration + @return: (L{message.MsgNodeHello}) if successful, None otherwise for the next iteration @event: ClientConnected(event, message) is triggered as soon as the client is connected """ @@ -542,7 +542,7 @@ def newIdentifier(self, identifiers=None): """Creates a new identifier to be used as request identifer or whatever - @param identifiersuuids: if desired any iterable containing identifiers to enshure the identifier is unique within the iterable + @param identifiers: if desired any iterable containing identifiers to enshure the identifier is unique within the iterable @return: (str) identifier """ @@ -1185,8 +1185,8 @@ def sendMessage(self, msg): """Sends a message to freenet - @param msg: (L{message.MsgMessage}) message to send - @return: (L{message.MsgMessage}) disconnect if something went wrong + @param msg: (L{message._MessageBase}) message to send + @return: always None @note: If an error occurs the client is closed @note: you can use this method to send a message to the node, bypassing all @@ -1260,7 +1260,7 @@ **messageParams ): """Requests a key from the node - @param uri: (L{key.KeyBase}) key to request + @param uri: (L{key._KeyBase}) key to request @param requestType: (L{consts.ConstRequestType}) sub type of the message @param userData: any non persistent data to associate to the request or None @param persistentUserData: any string to associate to the request as persistent data or None @@ -1303,7 +1303,7 @@ ): """Requests datae from the node - @param uri: (L{key.KeyBase}) key to request + @param uri: (L{key._KeyBase}) key to request @param allowedMimeTypes: (str) list of allowed mime types @param binaryBlob: (bool) if True, the file is retrieved as binary blob file @@ -1370,7 +1370,7 @@ ): """Requests a file from the node - @param uri: (L{key.KeyBase}) key to request + @param uri: (L{key._KeyBase}) key to request @param filename: (full path) filename to store the file to @param allowedMimeTypes: (str) list of allowed mime types @@ -1434,7 +1434,7 @@ ): """Requests info about a key - @param uri: (L{key.KeyBase}) key to request + @param uri: (L{key._KeyBase}) key to request @param dsOnly: if True, retrieves the file from the local data store only @param ignoreDS: If True, ignores the local data store @@ -1479,7 +1479,7 @@ def subscribeUSK(self, uri, dontPoll=True): """Asks the node to notify the client when an USK is updated - @param uri: (L{key.USK}) key to subscribe to + @param uri: (L{key.KeyUSK}) key to subscribe to @param dontPoll: if True, does whatever ??? @return: (str) identifer of the request @@ -1660,7 +1660,7 @@ ): """Uploads data - @param uri: (L{key.KeyBase}) key under wich to upload the data + @param uri: (L{key._KeyBase}) key under wich to upload the data @param data: (bytes) data to upload @param contentType: (str) content type. If not specified, the node will guess the content type @@ -1726,7 +1726,7 @@ ): """Uploads the contents of a directory - @param uri: (L{key.KeyBase}) key under wich to upload the directory + @param uri: (L{key._KeyBase}) key under wich to upload the directory @param directory: (str) directory to upload @param allowUnreadableFiles: if True, unreadable files in the directory are ignored, if False the request fails if it encounters an unreadavle file @@ -1776,7 +1776,7 @@ ): """Uploads a file - @param uri: (L{key.KeyBase}) key under wich to upload the file + @param uri: (L{key._KeyBase}) key under wich to upload the file @param filename: (str) file to upload @note: for other params see L{putData} @@ -1821,7 +1821,7 @@ ): """Uploads multiple items at once to be retrievable under one key - @param uri: (L{key.KeyBase}) key under wich to upload the file + @param uri: (L{key._KeyBase}) key under wich to upload the file @param items: (list) list of items to upload @note: for other params see L{putDir} @@ -1872,7 +1872,7 @@ persistentUserData='', ): """Uploads a redirect to another key - @param uri: (L{key.KSK}) to insert as redirect + @param uri: (L{key.KeyKSK}) to insert as redirect @param targetKey: (key.KeyBase) key to redirect to @param maxRetries: (int) maximum number of tretries or -1 to leave the decission up to the node @param persistence: (L{consts.ConstPersistence}) of the request @@ -1900,7 +1900,7 @@ def getRequest(self, requestIdentifier): """Returns a (initial) message, given its identifier @param requestIdentifier: identifier of the message - @return: L{message.MsgMessage} + @return: L{message._MessageBase} """ return self._requests[requestIdentifier] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-01 18:48:37
|
Revision: 477 http://fclient.svn.sourceforge.net/fclient/?rev=477&view=rev Author: jUrner Date: 2008-07-01 11:48:31 -0700 (Tue, 01 Jul 2008) Log Message: ----------- superfluous import Modified Paths: -------------- trunk/fcp2/src/fcp2/config.py Modified: trunk/fcp2/src/fcp2/config.py =================================================================== --- trunk/fcp2/src/fcp2/config.py 2008-07-01 18:42:55 UTC (rev 476) +++ trunk/fcp2/src/fcp2/config.py 2008-07-01 18:48:31 UTC (rev 477) @@ -60,7 +60,6 @@ from fcp2 import consts from fcp2 import types from fcp2 import key -from fcp2.fcp_lib import uuid del hack, _RelImportHack This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-01 18:44:13
|
Revision: 476 http://fclient.svn.sourceforge.net/fclient/?rev=476&view=rev Author: jUrner Date: 2008-07-01 11:42:55 -0700 (Tue, 01 Jul 2008) Log Message: ----------- superfluous import Modified Paths: -------------- trunk/fcp2/src/fcp2/test_fcp/test_client.py Modified: trunk/fcp2/src/fcp2/test_fcp/test_client.py =================================================================== --- trunk/fcp2/src/fcp2/test_fcp/test_client.py 2008-07-01 18:41:38 UTC (rev 475) +++ trunk/fcp2/src/fcp2/test_fcp/test_client.py 2008-07-01 18:42:55 UTC (rev 476) @@ -38,7 +38,7 @@ """Base class for all tests""" client = fcp2.Client( - #debugVerbosity=Client.fcp2.DebugVerbosity.Debug + #debugVerbosity=fcp2.ConstDebugVerbosity.Debug, debugVerbosity=fcp2.ConstDebugVerbosity.Quiet ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-01 18:42:21
|
Revision: 475 http://fclient.svn.sourceforge.net/fclient/?rev=475&view=rev Author: jUrner Date: 2008-07-01 11:41:38 -0700 (Tue, 01 Jul 2008) Log Message: ----------- superfluous import Modified Paths: -------------- trunk/fcp2/src/fcp2/message.py Modified: trunk/fcp2/src/fcp2/message.py =================================================================== --- trunk/fcp2/src/fcp2/message.py 2008-07-01 18:39:17 UTC (rev 474) +++ trunk/fcp2/src/fcp2/message.py 2008-07-01 18:41:38 UTC (rev 475) @@ -19,7 +19,6 @@ from fcp2 import types from fcp2 import key from fcp2.fcp_lib import node -from fcp2.fcp_lib import uuid del hack, _RelImportHack This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-01 18:41:11
|
Revision: 474 http://fclient.svn.sourceforge.net/fclient/?rev=474&view=rev Author: jUrner Date: 2008-07-01 11:39:17 -0700 (Tue, 01 Jul 2008) Log Message: ----------- _newUuid() is now newidentifier() ++ this and that Modified Paths: -------------- trunk/fcp2/src/fcp2/client.py Modified: trunk/fcp2/src/fcp2/client.py =================================================================== --- trunk/fcp2/src/fcp2/client.py 2008-07-01 18:36:31 UTC (rev 473) +++ trunk/fcp2/src/fcp2/client.py 2008-07-01 18:39:17 UTC (rev 474) @@ -202,6 +202,7 @@ import logging import subprocess import time +import uuid #--> rel import hack @@ -220,12 +221,11 @@ from fcp2 import iohandler from fcp2 import types from fcp2 import key +import random from fcp2.fcp_lib import namespace from fcp2.fcp_lib import tools -from fcp2.fcp_lib import uuid - del hack, _RelImportHack #<-- rel import hack @@ -323,7 +323,6 @@ self.ioHandler.close() - #TODO: check if this method is still needed def _finalizeRequest(self, msg, request, event): """Finalzes a request @param msg: message that is the reason for finalizing @@ -350,21 +349,8 @@ if removeRequest: del self._requests[request['Identifier']] - - def _newUuid(self, uuids=None): - """Creates a new unique identifier - @param uuids: if desired any iterable containing uuids to enshure the identifier is unique in the iterable - @return: (str) uuid - - """ - uuid_ = uuid.uuid_time() - if uuids is not None: - while uuid_ in uuids: - uuid_ = uuid_time() - return uuid_ - def _registerRequest(self, msg, requestType, @@ -387,12 +373,12 @@ @return: (str) identifer of therequest @note: the identifier returned is unique to the client but may not be unique to the node """ - identifier = self._newUuid(uuids=self._requests) if identifier is None else identifier + identifier = self.newIdentifier(identifiers=self._requests) if identifier is None else identifier # equip requests with some additional params #TODO: keep an eye on additional params, they may collide with Fcp parameters - msg['Identifier'] = self._newUuid(uuids=self._requests) if identifier is None else identifier + msg['Identifier'] = self.newIdentifier(identifiers=self._requests) if identifier is None else identifier msg['RequestType'] = requestType msg['InitTime'] = time.time() if initTime is None else initTime if requestType & consts.ConstRequestType.MaskGet: @@ -459,9 +445,8 @@ @return: (bool) True if so, False otherwise """ return self.ioHandler.isOpen() + - - def iterConnect(self, host=DefaultFcpHost, port=DefaultFcpPort, duration=20, timeout=0.5): """Iterator to stablish a connection to a freenet node @param host: (str) host of th node @@ -537,7 +522,7 @@ @param connectionName: (str) connection name or None to use an arbitrary connection name @return: (str) connection name """ - self._connectionName = self._newUuid() if connectionName is None else connectionName + self._connectionName = self.newIdentifier() if connectionName is None else connectionName return self._connectionName @@ -548,15 +533,26 @@ return consts.ConstLogger.Client.getEffectiveLevel() - def setDebugVerbosity(self, debugVerbosity): """Sets the verbosity level of the client @param debugVerbosity: L{consts.ConstDebugVerbosity} """ consts.ConstLogger.Client.setLevel(debugVerbosity) - + + def newIdentifier(self, identifiers=None): + """Creates a new identifier to be used as request identifer or whatever + @param identifiersuuids: if desired any iterable containing identifiers to enshure the identifier is unique within the iterable + @return: (str) identifier + + """ + identifier = str(hex(random.getrandbits(128))) + if identifiers is not None: + while identifier in identifiers: + identifier = str(hex(random.getrandbits(128))) + return identifier + def startNode(self, cmdline): """Starts the freenet node @param cmdline: commandline to start freenet (like '/freenet/run.sh start' or 'c:\freenet\start.bat') @@ -612,7 +608,7 @@ return False # resend request with new identifier - newIdentifier = self._newUuid(uuids=self._requests) + newIdentifier = self.newIdentifier(identifiers=self._requests) self._requests[newIdentifier] = initialRequest del self._requests[requestIdentifier] initialRequest['Identifier'] = newIdentifier @@ -764,6 +760,7 @@ raise ValueError('No initial message found in TestDDAComplete') # remove test and clean tmp data + #TODO: reset TestDDA params or not? self._ddaTests.remove(initialRequest) if initialRequest['TestDDA']['TmpFile'] is not None: tools.saveRemoveFile(initialRequest['TestDDA']['TmpFile']) @@ -847,7 +844,9 @@ code = msg['Code'] if code == consts.ConstFetchError.Canceled: - initialRequest['RequestStatus'] |= consts.ConstRequestStatus.Removed | consts.ConstRequestStatus.Completed | consts.ConstRequestStatus.RemovedFromQueue + initialRequest['RequestStatus'] |= consts.ConstRequestStatus.Removed | \ + consts.ConstRequestStatus.Completed | \ + consts.ConstRequestStatus.RemovedFromQueue del self._requests[requestIdentifier] self.events.RequestRemoved(initialRequest) return True @@ -897,7 +896,7 @@ self.events.RequestRestored(initialRequest) return True - # ignore + #TODO: ignore handshake? return False @@ -1196,8 +1195,8 @@ # Reminder to self: # - # if socket dies on sendall ther is no way to determine if and how much data was send - # ...so assume data was send, cos there is no way to proove it was not send + # if socket dies on sendall there is no way to determine if and how much data was send + # ...so assume data was send try: self.ioHandler.sendMessage(msg) except consts.ErrorIOBroken, details: @@ -1237,9 +1236,8 @@ WithDataTypes=withDataTypes, ) ) + - - def modifyConfig(self, params): """Modifies node configuration values @param params: (dict) containing parameters to modify @@ -1286,7 +1284,6 @@ ) self.sendMessage(msg) return msg['Identifier'] - def getData(self, @@ -1352,8 +1349,7 @@ ReturnType=consts.ConstReturnType.Direct, Verbosity=consts.ConstVerbosity.ReportProgress, ) - - + def getFile(self, uri, @@ -1424,7 +1420,6 @@ ) - def getKeyInfo(self, uri, @@ -1482,7 +1477,6 @@ ) - def subscribeUSK(self, uri, dontPoll=True): """Asks the node to notify the client when an USK is updated @param uri: (L{key.USK}) key to subscribe to @@ -1868,7 +1862,6 @@ ) - def putRedirect(self, uri, targetKey, @@ -1984,8 +1977,7 @@ ) else: del self._requests[requestIdentifier] - - + ######################################################## ## ## Peer related methods This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-01 18:38:12
|
Revision: 473 http://fclient.svn.sourceforge.net/fclient/?rev=473&view=rev Author: jUrner Date: 2008-07-01 11:36:31 -0700 (Tue, 01 Jul 2008) Log Message: ----------- no longer needed Removed Paths: ------------- trunk/fcp2/src/fcp2/fcp_lib/uuid.py Deleted: trunk/fcp2/src/fcp2/fcp_lib/uuid.py =================================================================== --- trunk/fcp2/src/fcp2/fcp_lib/uuid.py 2008-07-01 13:35:38 UTC (rev 472) +++ trunk/fcp2/src/fcp2/fcp_lib/uuid.py 2008-07-01 18:36:31 UTC (rev 473) @@ -1,456 +0,0 @@ - -"""handling RFC 4122 compatible UUIDs""" - -"""Copyright (c) 2006-2007 Juergen Urner - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software -and associated documentation files (the "Software"), to deal in the Software without restriction, -including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the Software is furnished to -do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial -portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF -CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE -OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -""" - - -__version__ = "0.3.2" - -import calendar as _calendar -import md5 as _md5 -import random as _random -import re as _re -import sha as _sha -import sys as _sys -import time as _time -#*********************************************************************************************** -# consts -#*********************************************************************************************** - -VARIANT_UNKNOWN = 0 # unknown variant -VARIANT_NCS = 1 # reserved for NCS backward compatibility -VARIANT_RFC4122 = 2 # RFC4122 compatible (produced by this module) -VARIANT_MS = 3 # Reserved for Microsoft backward compatibility -VARIANT_FUTURE = 4 # Reserved for future definition - - -VERSION_UNKNOWN = 0 # unknown version -VERSION_TIME = 1 # time based UUID -VERSION_DCE = 2 # DCE Security version -VERSION_MD5 = 3 # name based UUID with MD5 hashing -VERSION_RANDOM = 4 # randomly generated UUID -VERSION_SHA1 = 5 # name based UUID with SHA1 hashing - - -NAMESPACE_DNS = '{6ba7b810-9dad-11d1-80b4-00c04fd430c8}' # DNS namespace UUID -NAMESPACE_URL = '{6ba7b811-9dad-11d1-80b4-00c04fd430c8}' # URL namespace UUID -NAMESPACE_OID = '{6ba7b812-9dad-11d1-80b4-00c04fd430c8}' # OID namespace UUID -NAMESPACE_X500 = '{6ba7b814-9dad-11d1-80b4-00c04fd430c8}' # X500 namespace UUID - -UUID_NIL = '{00000000-0000-0000-0000-000000000000}' # UUID NULL - - -# TODO: the thrown in getrandbits() replacement may not work as expected -# check if getrandbits is available (requires python 2.4) -try: - _getrandbits = _random.getrandbits -except: - def _getrandbits(num_bits): # took this from: http://www.zopelabs.com/cookbook/1067449107 - rnd = _random.Random() - bytes = 0L - for i in range(0, num_bits): - bytes += long(rnd.randint(0,1)) << i - return bytes - - -# throw in replacement in for socket.htonl and friends (enshures we always get a ulong in return) -def _DWORD(num): return num & 0xFFFFFFFFL -def _WORD(num): return num & 0xFFFF - -if _sys.byteorder == 'big': - def _htonl(dw): return _DWORD(dw) - def _htons(w): return _WORD(w) -else: - def _htons(w): - w = _WORD(w) - return ((w & 0xff00) >> 8) | ((w & 0x00ff) << 8) - def _htonl(dw): - dw = _DWORD(dw) - return ((dw & 0xff000000L) >> 24) | \ - ((dw & 0x00ff0000L) >> 8) | \ - ((dw & 0x0000ff00L) << 8) | \ - ((dw & 0x000000ffL) << 24) -_ntohs = _htons -_ntohl = _htonl - -#*********************************************************************************************** -# regex patterns -#*********************************************************************************************** - -# matches any string that looks like it could contain an uuid (ignoring curly braces) -UUID_PAT = _re.compile(r'([0-9a-f]{8}\-[0-9a-f]{4}\-[0-9a-f]{4}\-[0-9a-f]{4}\-[0-9a-f]{12})', _re.I) - -# matches any string that looks like it could contain an uuid (incluing curly braces) -UUID_MATCH_PAT = _re.compile(r'(\{([0-9a-f]{8}\-[0-9a-f]{4}\-[0-9a-f]{4}\-[0-9a-f]{4}\-[0-9a-f]{12})\})', _re.I) - -# matches any string that is an uuid (incluing curly braces) -UUID_EXACT_MATCH_PAT = _re.compile(r'(\A\{([0-9a-f]{8}\-[0-9a-f]{4}\-[0-9a-f]{4}\-[0-9a-f]{4}\-[0-9a-f]{12})\})\Z', _re.I) - -#*********************************************************************************************** -# others -#*********************************************************************************************** -class UuidError(Exception): - """default error""" - - -class _GeneratorState(object): - - CLOCK_SEQ_MAX = 0x3FFF - - # TODO: how to calculate time resolution ? - # holds the number of 100ns ticks of the actual resolution of the system's clock - # the current implementation just limits the number or UUIDs generated/tick to 10.000, - # no matter what tick is - UUIDS_PER_TICK = 10000 - - # time delta in 100ns steps from system epoch to uuid epoch (00:00:00.00, 15 October 1582) - # calculate delta of the actual epoch relative to UNIX_EPOCH - GM_UNIX_EPOCH = (1970, 1, 1, 0, 0, 0, 3, 1, 0) - UNIX_EPOCH = _calendar.timegm(GM_UNIX_EPOCH) * 10000000 - UNIX_OFFSET = 0x01b21dd213814000 # offset in nanoseconds to uuid epoch - TDELTA = UNIX_OFFSET - UNIX_EPOCH - - def __init__(self): - self.is_inited = False - self.time_last = 0 - self.clock_seq = 0 - self.uuids_per_tick = 0 - - def load(self): - """supposed to read state from storage""" - #try: - # read state from storage - # self.is_inited = True - #except: - # self.clock_seq = _getrandbits(14) - # self.is_inited = False - self.clock_seq = _getrandbits(14) - - def dump(self): - """supposed to dump state to storage""" - -#*********************************************************************************************** -# uuid generator -#*********************************************************************************************** -class UuidGen(object): - - - def __init__(self): - - self._state = _GeneratorState() - - - # public methods ----------------------------------------------------------- - - def uuid_time(self): - time_now = self._get_time_now() - clock_seq = self._state.clock_seq - - time_low = time_now & 0xFFFFFFFFL - time_mid = (time_now >> 32) & 0xFFFF - time_hi_and_version = (time_now>> 48) & 0x0FFFF - node = _getrandbits(47) # throw in random bits instead of MAC address - node |= (1 << 47) # set unicast / multicast bit - - # put in variant and version bits - time_hi_and_version |= (1 << 12) - clock_seq_low = clock_seq & 0xFF - clock_seq_hi_and_reserved = (clock_seq & 0x3F00) >> 8 - clock_seq_hi_and_reserved |= 0x80 - - return self._format(time_low, time_mid, time_hi_and_version, - clock_seq_hi_and_reserved, clock_seq_low, node) - - - def uuid_random(self): - rnd = _getrandbits(128) - time_low = rnd & 0xFFFFFFFFL - time_mid = (rnd >> 32) & 0x0FFFF - time_hi_and_version = (rnd >> 48) & 0x0FFFF - clock_seq_hi_and_reserved = (rnd >> 64) & 0x0FF - clock_seq_low= (rnd >> 72) & 0x0FF - node = (rnd >> 80) - - # put in variant and version bits - time_hi_and_version &= 0x0FFF; - time_hi_and_version |= (4 << 12) - clock_seq_hi_and_reserved &= 0x3F - clock_seq_hi_and_reserved |= 0x80 - - return self._format(time_low, time_mid, time_hi_and_version, - clock_seq_hi_and_reserved, clock_seq_low, node) - - - def uuid_md5(self, nsuuid, name): - return self._format_uuid_v3or5(nsuuid, name, _md5, 3) - - - def uuid_sha1(self, nsuuid, name): - return self._format_uuid_v3or5(nsuuid, name, _sha, 5) - - - # helper methods -------------------------------------------------------- - - def _format(self, *args): - return '{%08x-%04x-%04x-%02x%02x-%012x}' % args - - - def _int_to_bytes(self, num): - out = '' - while num: - num, tail = divmod(num, 256) - out += chr(tail) - return out[-1::-1] - - - def _bytes_to_int(self, bytes): - num = 0 - for char in bytes: - num = (num << 8) + ord(char) - return num - - - # helper for md5 and sha1 UUIDS - def _format_uuid_v3or5(self, nsuuid, name, hasher, ver): - try: - nsuuid = clean(nsuuid) - except: - raise UuidError('invalid namespace uuid: %r' % nsuuid) - # convert UUID bytes to network byte order - time_low = _htonl(long(nsuuid[:8], 16)) - time_mid = _htons(long(nsuuid[9:13], 16)) - time_hi_and_version = _htons(long(nsuuid[14:18], 16)) - - # hash the stuff - h = hasher.new() - h.update(self._int_to_bytes(time_low)) - h.update(self._int_to_bytes(time_mid)) - h.update(self._int_to_bytes(time_hi_and_version)) - h.update(name) - hash_ = h.digest()[:16] - - # convert hash to back to host byte order - time_low = _ntohl(self._bytes_to_int(hash_[:4])) - time_mid = _ntohs(self._bytes_to_int(hash_[4:6])) - time_hi_and_version = _ntohs(self._bytes_to_int(hash_[6:8])) - clock_seq_hi_and_reserved = _ntohs(self._bytes_to_int(hash_[8:9])) - clock_seq_low= self._bytes_to_int(hash_[9:10]) - node = self._bytes_to_int(hash_[10:]) - - # throw in variant and version bits - time_hi_and_version &= 0x0FFF; - time_hi_and_version |= (ver << 12) - clock_seq_hi_and_reserved &= 0x3F - clock_seq_hi_and_reserved |= 0x80 - - return self._format(time_low, time_mid, time_hi_and_version, - clock_seq_hi_and_reserved, clock_seq_low, node) - - - - # returns a new timestamp for time based UUIDs - def _get_time_now(self): - - self._state.load() - - while True: - - time_now = _time.time() * 10000000 - - if time_now < self._state.time_last - self._state.uuids_per_tick: # adjust clock_seq if time turned backwards - if self._state.is_inited: - self._state.clock_seq += 1 - if self._state.clock_seq > self._state.CLOCK_SEQ_MAX: - self._state.clock_seq = 0 - self._state.uuids_per_tick = 0 - break - - elif time_now <= self._state.time_last: # patch/slow down if more then 1 uuid is requested / tick - self._state.uuids_per_tick += 1 - if self._state.uuids_per_tick < self._state.UUIDS_PER_TICK: - time_now += self._state.uuids_per_tick - break - - else: - self._state.uuids_per_tick = 0 - break - - ## - self._state.time_last = time_now - self._state.dump() - return long(time_now) + self._state.TDELTA - - - -#*********************************************************************************************** -# functions -#*********************************************************************************************** -def uuid_time(): - return UuidGen().uuid_time() - - -def uuid_random(): - return UuidGen().uuid_random() - - -def uuid_md5(nsuuid, name): - return UuidGen().uuid_md5(nsuuid, name) - - -def uuid_sha1(nsuuid, name): - return UuidGen().uuid_sha1(nsuuid, name) - - -def clean(uuid, pattern=UUID_EXACT_MATCH_PAT): - match = pattern.match(uuid) - if not match: - raise ValueError('invalid UUID: %r' % uuid) - return match.group(2) - - -def get_variant(uuid): - uuid = clean(uuid) - variant = long(uuid[19:21], 16) - if not variant & 0x80: - return VARIANT_NCS - elif not variant & 0x40 and variant & 0x80: - return VARIANT_RFC4122 - elif not variant & 0x20 and variant & 0x40 and variant & 0x80: - return VARIANT_MS - elif variant & 0x20 and variant & 0x40 and variant & 0x80: - return VARIANT_FUTURE - else: - return VARIANT_UNKNOWN - - -def get_version(uuid): - uuid = clean(uuid) - time_hi_and_version = long(uuid[14:18], 16) - version = time_hi_and_version >> 12 - if 1 < version > 5: - version = VERSION_UNKNOWN - return version - - -def get_time(uuid): - uuid = clean(uuid) - time_low = long(uuid[:8], 16) - time_mid = long(uuid[9:13], 16) - time_hi_and_version = long(uuid[14:18], 16) - variant = long(uuid[19:21], 16) - version = time_hi_and_version >> 12 - if version == 1 and(variant & 0x80) and not (variant & 0x40): - time_hi_and_version &= ~(version << 12) - time_now = time_low | (time_mid << 32) | (time_hi_and_version << 48) - return (float(time_now) - _GeneratorState.TDELTA) / 10000000 - return 0 - - -def get_mac_address(uuid): - uuid = clean(uuid) - node = long(uuid[24:], 16) - time_hi_and_version = long(uuid[14:18], 16) - variant = long(uuid[19:21], 16) - version = time_hi_and_version >> 12 - if version == 1 and(variant & 0x80) and not (variant & 0x40): - return node - return 0 - - -def format_mac_address(mac_addr): - return '%02x-%02x-%02x-%02x-%02x-%02x' % ( - (mac_addr & 0xFF0000000000) >> 40, - (mac_addr & 0xFF00000000)>> 32, - (mac_addr & 0xFF000000) >> 24, - (mac_addr & 0xFF0000) >> 16, - (mac_addr& 0xFF00) >> 8, - mac_addr & 0xFF - ) - -#*********************************************************************************************** -# commandline interface -#*********************************************************************************************** -if __name__ == '__main__': - import sys - import getopt - - - USAGE = """'generates a UUID of the specified type and prints it to stdout - -usage: - uuid.py [-h] [-t <type> [-s <namespace uuid> -n <name>]] - - -h prints out this help message - -t type of uuid (time, random, md5, sha1) - -s namespace uuid (required for md5 or sha1) - -n name (required for md5 or sha1) -""" - try: - o, args = getopt.getopt(sys.argv[1:], 'ht:s:n:') - o = dict(o) - if '-h' in o: - print USAGE - else: - type_uuid = o.get('-t', None) - if type_uuid == 'time': - print uuid_time() - elif type_uuid == 'random': - print uuid_random() - elif type_uuid == 'md5': - print uuid_md5(o['-s'], o['-n']) - elif type_uuid == 'sha1': - print uuid_sha1(o['-s'], o['-n']) - else: - raise UuidError('') - except: - print USAGE - sys.exit() - -#################### -# # -# test # -# # -#################### - -def test(): - g = globals().items() - variants = dict([(value, name) for name, value in g \ - if name.startswith('VARIANT_')]) - versions = dict([(value, name) for name, value in g \ - if name.startswith('VERSION_')]) - - UUIDS = ( - uuid_time(), - uuid_random(), - uuid_md5(NAMESPACE_DNS, 'foo'), - uuid_sha1(NAMESPACE_DNS, 'bar'), - ) - - print - for UUID in (UUIDS): - print 'UUID: %r' % UUID - print 'variant: ', variants.get(get_variant(UUID), 'unknown') - print 'verson: ', versions.get(get_version(UUID), 'unknown') - print 'time: ', _time.ctime(get_time(UUID)), '(%ss since epoch)' \ - % get_time(UUID) - print 'MAC: %s' % format_mac_address(get_mac_address(UUID)) - print - -#test() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-01 13:36:18
|
Revision: 472 http://fclient.svn.sourceforge.net/fclient/?rev=472&view=rev Author: jUrner Date: 2008-07-01 06:35:38 -0700 (Tue, 01 Jul 2008) Log Message: ----------- a few fixes Modified Paths: -------------- trunk/fcp2/src/fcp2/iohandler.py Modified: trunk/fcp2/src/fcp2/iohandler.py =================================================================== --- trunk/fcp2/src/fcp2/iohandler.py 2008-07-01 13:31:48 UTC (rev 471) +++ trunk/fcp2/src/fcp2/iohandler.py 2008-07-01 13:35:38 UTC (rev 472) @@ -125,7 +125,7 @@ if p == '': raise socket.error('Socket closed by host') except socket.timeout, details: - raise consts.ErrorIOTimeout(details, consts.ConstLogger.IO.log, consts.DebugVerbosity.Chatty) + raise consts.ErrorIOTimeout(details, consts.ConstLogger.IO.log, consts.ConstDebugVerbosity.Chatty) except socket.error, details: self.close() raise consts.ErrorIOBroken(details, consts.ConstLogger.IO.error) @@ -301,7 +301,7 @@ msgName = p.pop(0) msgClass = message.MessagesAll.get(msgName, None) if msgClass is None: - consts.ConstLogger.IOHandler.debug(consts.ConstLogMessages.CreatingNewMessageType + ' "%s"' % msgClassname) + consts.ConstLogger.IOHandler.debug(consts.ConstLogMessages.CreatingNewMessageType + ' "%s"' % msgName) msgClass = message.newMessageClass(msgName) msg = msgClass() @@ -319,7 +319,7 @@ if not isinstance(n, (int, long)): #HACK: if hackyInvalidMessageCallback is not None: - ackyInvalidMessageCallback(msg) + hackyInvalidMessageCallback(msg) raise consts.ErrorMessageParse('DataLength must be type(int)') if n > 0: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-01 13:32:03
|
Revision: 471 http://fclient.svn.sourceforge.net/fclient/?rev=471&view=rev Author: jUrner Date: 2008-07-01 06:31:48 -0700 (Tue, 01 Jul 2008) Log Message: ----------- renames Modified Paths: -------------- trunk/fcp2/src/fcp2/message.py Modified: trunk/fcp2/src/fcp2/message.py =================================================================== --- trunk/fcp2/src/fcp2/message.py 2008-07-01 13:30:41 UTC (rev 470) +++ trunk/fcp2/src/fcp2/message.py 2008-07-01 13:31:48 UTC (rev 471) @@ -46,7 +46,7 @@ #******************************************************************************** # #******************************************************************************** -class _PMessageMeta(type): +class _MessageMeta(type): def __new__(klass, name, bases, kws): newClass = type.__new__(klass, name, bases, kws) @@ -59,7 +59,7 @@ #******************************************************************************** # #******************************************************************************** -class _PMessageBase(object): +class _MessageBase(object): """Class wrapping a Fcp message Sample use:: @@ -77,7 +77,7 @@ @ivar name: (str) message name @ivar params: (dict) message params """ - __metaclass__ = _PMessageMeta + __metaclass__ = _MessageMeta name = '' _additional_params_ = {} @@ -222,7 +222,7 @@ # as private so they don't get send to the node # #******************************************************************************** -_GetParams = { +_AdditionalGetParams = { # persistent params that will go into identifier _PrivateParam('RequestType'): consts.ConstRequestType.Null, # identifies sub message types @@ -254,7 +254,7 @@ } -_PutParams = { +_AdditionalPutParams = { # persistent params that will go into identifier _PrivateParam('RequestType'): consts.ConstRequestType.Null, # identifies sub message types @@ -356,26 +356,26 @@ '_persistent_params_': () if persistentParams is None else persistentParams, '_param_types_': {} if paramTypes is None else paramTypes, } - return type(name, (_PMessageBase, ), kws) + return type(name, (_MessageBase, ), kws) #******************************************************************************** # some messages defined by the client #******************************************************************************** -class MsgClientDisconnected(_PMessageBase): +class MsgClientDisconnected(_MessageBase): name = consts.ConstMessage.ClientDisconnected _additional_params_ = {} _param_types_ = { 'DisconnectReason': types.TypeInt, } -class MsgClientSocketDied(_PMessageBase): +class MsgClientSocketDied(_MessageBase): name = consts.ConstMessage.ClientSocketDied _additional_params_ = {} _param_types_ = { } -class MsgClientSocketTimeout(_PMessageBase): +class MsgClientSocketTimeout(_MessageBase): name = consts.ConstMessage.ClientSocketTimeout _additional_params_ = {} _param_types_ = { @@ -384,7 +384,7 @@ #******************************************************************************** # fcp messages #******************************************************************************** -class MsgAddPeer(_PMessageBase): +class MsgAddPeer(_MessageBase): name = consts.ConstMessage.AddPeer _additional_params_ = {} _param_types_ = { @@ -432,7 +432,7 @@ ''' -class MsgAllData(_PMessageBase): +class MsgAllData(_MessageBase): name = consts.ConstMessage.AllData _additional_params_ = {} _param_types_ = { @@ -444,9 +444,9 @@ return self['DataLength'] -class MsgClientGet(_PMessageBase): +class MsgClientGet(_MessageBase): name = consts.ConstMessage.ClientGet - _additional_params_ = _GetParams + _additional_params_ = _AdditionalGetParams _persistent_params_ = _PersistentParamsGet _param_types_ = { 'BinaryBlob': types.TypeBool, @@ -461,19 +461,19 @@ } def _restoreParams(self, params): - _PMessageBase._restoreParams(self, params) + _MessageBase._restoreParams(self, params) try: - _PMessageBase._setPersistentParams(self, self['ClientToken']) + _MessageBase._setPersistentParams(self, self['ClientToken']) except Exception, d: #print Exception, d return False return True def updatePersistentParams(self): - self['ClientToken'] = _PMessageBase._getPersistentParams(self) + self['ClientToken'] = _MessageBase._getPersistentParams(self) -class MsgClientHello(_PMessageBase): +class MsgClientHello(_MessageBase): name = consts.ConstMessage.ClientHello _additional_params_ = {} _param_types_ = { @@ -481,9 +481,9 @@ } -class MsgClientPut(_PMessageBase): +class MsgClientPut(_MessageBase): name = consts.ConstMessage.ClientPut - _additional_params_ = _PutParams + _additional_params_ = _AdditionalPutParams _persistent_params_ = _PersistentParamsPut _param_types_ = { 'BinaryBlob': types.TypeBool, @@ -501,16 +501,16 @@ return self['DataLength'] def _restoreParams(self, params): - _PMessageBase._restoreParams(self, params) + _MessageBase._restoreParams(self, params) try: - _PMessageBase._setPersistentParams(self, self['ClientToken']) + _MessageBase._setPersistentParams(self, self['ClientToken']) except Exception, d: #print Exception, d return False return True def updatePersistentParams(self): - self['ClientToken'] = _PMessageBase._getPersistentParams(self) + self['ClientToken'] = _MessageBase._getPersistentParams(self) class MsgClientPutComplexDir(MsgClientPut): @@ -544,7 +544,7 @@ name = consts.ConstMessage.ClientPutDiskDir -class MsgCloseConnectionDuplicateClientName(_PMessageBase): +class MsgCloseConnectionDuplicateClientName(_MessageBase): name = consts.ConstMessage.CloseConnectionDuplicateClientName _additional_params_ = {} _param_types_ = { @@ -552,13 +552,13 @@ ######################################### ######################################### -class MsgConfigData(_PMessageBase): +class MsgConfigData(_MessageBase): name = consts.ConstMessage.ConfigData _additional_params_ = {} _param_types_ = config._ConfigMessageParamTypes -class MsgDataFound(_PMessageBase): +class MsgDataFound(_MessageBase): name = consts.ConstMessage.DataFound _additional_params_ = {} _param_types_ = { @@ -567,35 +567,35 @@ } -class MsgEndListPeerNotes(_PMessageBase): +class MsgEndListPeerNotes(_MessageBase): name = consts.ConstMessage.EndListPeerNotes _additional_params_ = {} _param_types_ = { } -class MsgEndListPeers(_PMessageBase): +class MsgEndListPeers(_MessageBase): name = consts.ConstMessage.EndListPeers _additional_params_ = {} _param_types_ = { } -class MsgEndListPersistentRequests(_PMessageBase): +class MsgEndListPersistentRequests(_MessageBase): name = consts.ConstMessage.EndListPersistentRequests _additional_params_ = {} _param_types_ = { } -class MsgFCPPluginMessage(_PMessageBase): +class MsgFCPPluginMessage(_MessageBase): name = consts.ConstMessage.FCPPluginMessage _additional_params_ = {} _param_types_ = { } -class MsgFCPPluginReply(_PMessageBase): +class MsgFCPPluginReply(_MessageBase): name = consts.ConstMessage.FCPPluginReply _additional_params_ = {} _param_types_ = { @@ -603,7 +603,7 @@ } -class MsgFinishedCompression(_PMessageBase): +class MsgFinishedCompression(_MessageBase): name = consts.ConstMessage.FinishedCompression _additional_params_ = {} _param_types_ = { @@ -612,14 +612,14 @@ } -class MsgGenerateSSK(_PMessageBase): +class MsgGenerateSSK(_MessageBase): name = consts.ConstMessage.GenerateSSK _additional_params_ = _GenerateSSKParams _param_types_ = { } -class MsgGetConfig(_PMessageBase): +class MsgGetConfig(_MessageBase): name = consts.ConstMessage.GetConfig _additional_params_ = {} _param_types_ = { @@ -634,7 +634,7 @@ } -class MsgGetFailed(_PMessageBase): +class MsgGetFailed(_MessageBase): name = consts.ConstMessage.GetFailed _additional_params_ = {} _param_types_ = { @@ -647,7 +647,7 @@ } -class MsgGetNode(_PMessageBase): +class MsgGetNode(_MessageBase): name = consts.ConstMessage.GetNode _additional_params_ = {} _param_types_ = { @@ -657,7 +657,7 @@ } -class MsgGetPluginInfo(_PMessageBase): +class MsgGetPluginInfo(_MessageBase): name = consts.ConstMessage.GetPluginInfo _additional_params_ = _PluginInfoParams _param_types_ = { @@ -665,7 +665,7 @@ } -class MsgGetRequestStatus(_PMessageBase): +class MsgGetRequestStatus(_MessageBase): name = consts.ConstMessage.GetRequestStatus _additional_params_ = {} _param_types_ = { @@ -674,7 +674,7 @@ } -class MsgIdentifierCollision(_PMessageBase): +class MsgIdentifierCollision(_MessageBase): name = consts.ConstMessage.IdentifierCollision _additional_params_ = {} _param_types_ = { @@ -682,7 +682,7 @@ } -class MsgListPeer(_PMessageBase): +class MsgListPeer(_MessageBase): name = consts.ConstMessage.ListPeer _additional_params_ = {} _param_types_ = { @@ -691,7 +691,7 @@ } -class MsgListPeerNotes(_PMessageBase): +class MsgListPeerNotes(_MessageBase): name = consts.ConstMessage.ListPeerNotes _additional_params_ = {} _param_types_ = { @@ -699,7 +699,7 @@ -class MsgListPeers(_PMessageBase): +class MsgListPeers(_MessageBase): name = consts.ConstMessage.ListPeers _additional_params_ = {} _param_types_ = { @@ -708,7 +708,7 @@ } -class MsgListPersistentRequests(_PMessageBase): +class MsgListPersistentRequests(_MessageBase): name = consts.ConstMessage.ListPersistentRequests _additional_params_ = {} _param_types_ = { @@ -716,21 +716,21 @@ ##################################### ##################################### -class MsgModifyConfig(_PMessageBase): +class MsgModifyConfig(_MessageBase): name = consts.ConstMessage.ModifyConfig _additional_params_ = {} _param_types_ = config._ConfigMessageParamTypes ##################################### ##################################### -class MsgModifyPeer(_PMessageBase): +class MsgModifyPeer(_MessageBase): name = consts.ConstMessage.ModifyPeer _additional_params_ = {} _param_types_ = { } -class MsgModifyPeerNote(_PMessageBase): +class MsgModifyPeerNote(_MessageBase): name = consts.ConstMessage.ModifyPeerNote _additional_params_ = {} _param_types_ = { @@ -738,7 +738,7 @@ } -class MsgModifyPersistentRequest(_PMessageBase): +class MsgModifyPersistentRequest(_MessageBase): name = consts.ConstMessage.ModifyPersistentRequest _additional_params_ = {} _param_types_ = { @@ -747,7 +747,7 @@ ################################### ################################### -class MsgNodeData(_PMessageBase): +class MsgNodeData(_MessageBase): name = consts.ConstMessage.NodeData _additional_params_ = {} _param_types_ = { @@ -860,7 +860,7 @@ ''' -class MsgNodeHello(_PMessageBase): +class MsgNodeHello(_MessageBase): name = consts.ConstMessage.NodeHello _additional_params_ = {} _param_types_ = { @@ -873,13 +873,13 @@ ####################################### ####################################### -class MsgPeer(_PMessageBase): +class MsgPeer(_MessageBase): name = consts.ConstMessage.Peer _additional_params_ = {} _param_types_ = MsgAddPeer._param_types_ -class MsgPeerNote(_PMessageBase): +class MsgPeerNote(_MessageBase): name = consts.ConstMessage.PeerNote _additional_params_ = {} _param_types_ = { @@ -887,7 +887,7 @@ } -class MsgPeerRemoved(_PMessageBase): +class MsgPeerRemoved(_MessageBase): name = consts.ConstMessage.PeerRemoved _additional_params_ = {} _param_types_ = { @@ -895,17 +895,17 @@ ####################################### ####################################### -class MsgPersistentGet(_PMessageBase): +class MsgPersistentGet(_MessageBase): name = consts.ConstMessage.PersistentGet - _additional_params_ = _GetParams + _additional_params_ = _AdditionalGetParams _persistent_params_ = _PersistentParamsGet _param_types_ = MsgClientGet._param_types_.copy() _param_types_['Started'] = types.TypeBool def _restoreParams(self, params): - _PMessageBase._restoreParams(self, params) + _MessageBase._restoreParams(self, params) try: - _PMessageBase._setPersistentParams(self, self['ClientToken']) + _MessageBase._setPersistentParams(self, self['ClientToken']) except Exception, d: #print Exception, d return False @@ -913,33 +913,33 @@ ####################################### ####################################### -class MsgPersistentPut(_PMessageBase): +class MsgPersistentPut(_MessageBase): name = consts.ConstMessage.PersistentPut - _additional_params_ = _PutParams + _additional_params_ = _AdditionalPutParams _persistent_params_ = _PersistentParamsPut _param_types_ = MsgClientPut._param_types_.copy() _param_types_['Started'] = types.TypeBool def _restoreParams(self, params): - _PMessageBase._restoreParams(self, params) + _MessageBase._restoreParams(self, params) try: - _PMessageBase._setPersistentParams(self, self['ClientToken']) + _MessageBase._setPersistentParams(self, self['ClientToken']) except Exception, d: #print Exception, d return False return True -class MsgPersistentPutDir(_PMessageBase): +class MsgPersistentPutDir(_MessageBase): name = consts.ConstMessage.PersistentPutDir - _additional_params_ = _PutParams + _additional_params_ = _AdditionalPutParams _persistent_params_ = _PersistentParamsPut _param_types_ = MsgClientPutDiskDir._param_types_.copy() _param_types_['Started'] = types.TypeBool def _restoreParams(self, params): - _PMessageBase._restoreParams(self, params) + _MessageBase._restoreParams(self, params) for paramName, paramValue in self.params.items(): tmp_paramName = paramName.split('.') @@ -949,14 +949,14 @@ self[paramName] = n try: - _PMessageBase._setPersistentParams(self, self['ClientToken']) + _MessageBase._setPersistentParams(self, self['ClientToken']) except Exception, d: #print Exception, d return False return True -class MsgPersistentRequestModified(_PMessageBase): +class MsgPersistentRequestModified(_MessageBase): name = consts.ConstMessage.PersistentRequestModified _additional_params_ = {} _param_types_ = { @@ -964,7 +964,7 @@ } -class MsgPersistentRequestRemoved(_PMessageBase): +class MsgPersistentRequestRemoved(_MessageBase): name = consts.ConstMessage.PersistentRequestRemoved _additional_params_ = {} _param_types_ = { @@ -972,14 +972,14 @@ } -class MsgPluginInfo(_PMessageBase): +class MsgPluginInfo(_MessageBase): name = consts.ConstMessage.PluginInfo _additional_params_ = {} _param_types_ = { } -class MsgProtocolError(_PMessageBase): +class MsgProtocolError(_MessageBase): name = consts.ConstMessage.ProtocolError _additional_params_ = {} _param_types_ = { @@ -989,7 +989,7 @@ -class MsgPutFailed(_PMessageBase): +class MsgPutFailed(_MessageBase): name = consts.ConstMessage.PutFailed _additional_params_ = {} _param_types_ = { @@ -999,7 +999,7 @@ } -class MsgPutFetchable(_PMessageBase): +class MsgPutFetchable(_MessageBase): name = consts.ConstMessage.PutFetchable _additional_params_ = {} _param_types_ = { @@ -1011,7 +1011,7 @@ ###################################### #!! not implemented #TODO: has more params -class MsgPutSuccessful(_PMessageBase): +class MsgPutSuccessful(_MessageBase): name = consts.ConstMessage.PutSuccessful _additional_params_ = {} _param_types_ = { @@ -1020,14 +1020,14 @@ } -class MsgRemovePeer(_PMessageBase): +class MsgRemovePeer(_MessageBase): name = consts.ConstMessage.RemovePeer _additional_params_ = {} _param_types_ = { } -class MsgRemoveRequest(_PMessageBase): +class MsgRemoveRequest(_MessageBase): name = consts.ConstMessage.RemoveRequest _additional_params_ = {} _param_types_ = { @@ -1035,7 +1035,7 @@ } -class MsgSSKKeypair(_PMessageBase): +class MsgSSKKeypair(_MessageBase): name = consts.ConstMessage. SSKKeypair _additional_params_ = {} _param_types_ = { @@ -1044,14 +1044,14 @@ } -class MsgShutdown(_PMessageBase): +class MsgShutdown(_MessageBase): name = consts.ConstMessage.Shutdown _additional_params_ = {} _param_types_ = { } -class MsgSimpleProgress(_PMessageBase): +class MsgSimpleProgress(_MessageBase): name = consts.ConstMessage.SimpleProgress _additional_params_ = {} _param_types_ = { @@ -1064,14 +1064,14 @@ } -class MsgStartedCompression(_PMessageBase): +class MsgStartedCompression(_MessageBase): name = consts.ConstMessage.StartedCompression _additional_params_ = {} _param_types_ = { } -class MsgSubscribeUSK(_PMessageBase): +class MsgSubscribeUSK(_MessageBase): name = consts.ConstMessage.SubscribeUSK _additional_params_ = _SubscribeUSKParams _param_types_ = { @@ -1080,7 +1080,7 @@ } -class MsgSubscribedUSKUpdate(_PMessageBase): +class MsgSubscribedUSKUpdate(_MessageBase): name = consts.ConstMessage.SubscribedUSKUpdate _additional_params_ = {} _param_types_ = { @@ -1089,7 +1089,7 @@ } -class MsgTestDDAComplete(_PMessageBase): +class MsgTestDDAComplete(_MessageBase): name = consts.ConstMessage.TestDDAComplete _additional_params_ = {} _param_types_ = { @@ -1098,14 +1098,14 @@ } -class MsgTestDDAReply(_PMessageBase): +class MsgTestDDAReply(_MessageBase): name = consts.ConstMessage.TestDDAReply _additional_params_ = {} _param_types_ = { } -class MsgTestDDARequest(_PMessageBase): +class MsgTestDDARequest(_MessageBase): name = consts.ConstMessage.TestDDARequest _additional_params_ = {} _param_types_ = { @@ -1114,14 +1114,14 @@ } -class MsgTestDDAResponse(_PMessageBase): +class MsgTestDDAResponse(_MessageBase): name = consts.ConstMessage.TestDDAResponse _additional_params_ = {} _param_types_ = { } -class MsgURIGenerated(_PMessageBase): +class MsgURIGenerated(_MessageBase): name = consts.ConstMessage.URIGenerated _additional_params_ = {} _param_types_ = { @@ -1129,21 +1129,21 @@ } -class MsgUnknownNodeIdentifier(_PMessageBase): +class MsgUnknownNodeIdentifier(_MessageBase): name = consts.ConstMessage.UnknownNodeIdentifier _additional_params_ = {} _param_types_ = { } -class MsgUnknownPeerNoteType(_PMessageBase): +class MsgUnknownPeerNoteType(_MessageBase): name = consts.ConstMessage.UnknownPeerNoteType _additional_params_ = {} _param_types_ = { } -class MsgWatchGlobal(_PMessageBase): +class MsgWatchGlobal(_MessageBase): name = consts.ConstMessage.WatchGlobal _additional_params_ = {} _param_types_ = { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-01 13:31:22
|
Revision: 470 http://fclient.svn.sourceforge.net/fclient/?rev=470&view=rev Author: jUrner Date: 2008-07-01 06:30:41 -0700 (Tue, 01 Jul 2008) Log Message: ----------- added requirements Modified Paths: -------------- trunk/fcp2/src/fcp2/__init__.py Modified: trunk/fcp2/src/fcp2/__init__.py =================================================================== --- trunk/fcp2/src/fcp2/__init__.py 2008-07-01 13:24:16 UTC (rev 469) +++ trunk/fcp2/src/fcp2/__init__.py 2008-07-01 13:30:41 UTC (rev 470) @@ -1,6 +1,8 @@ """Python wrapper for the freenet client protocol version-2 See: [http://www.freenetproject.org] and [http://wiki.freenetproject.org/FreenetFCPSpec2Point0] + +@requires: python >= 2.5 """ import os, sys @@ -29,7 +31,6 @@ del hack, _RelImportHack #<-- rel import hack - #**************************************************************************************** # #**************************************************************************************** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-01 13:25:27
|
Revision: 469 http://fclient.svn.sourceforge.net/fclient/?rev=469&view=rev Author: jUrner Date: 2008-07-01 06:24:16 -0700 (Tue, 01 Jul 2008) Log Message: ----------- a few fixes Modified Paths: -------------- trunk/fcp2/src/fcp2/config.py Modified: trunk/fcp2/src/fcp2/config.py =================================================================== --- trunk/fcp2/src/fcp2/config.py 2008-07-01 13:23:33 UTC (rev 468) +++ trunk/fcp2/src/fcp2/config.py 2008-07-01 13:24:16 UTC (rev 469) @@ -70,7 +70,7 @@ #**************************************************************************************** ConfigKeySep = '.' -class ConfigDataType:# +class ConfigDataType: """Basic data types in config messages""" Boolean = 'boolean' Number = 'number' @@ -343,7 +343,7 @@ out.append(parent.name) parent = parent.parent out.reverse() - return consts.ConfigKeySep.join(out) + return ConfigKeySep.join(out) def walk(self): @@ -430,8 +430,8 @@ @return: (str) key @note: if the key does not contain the paramClass it is returned unchanged """ - head, tail = message.ConfigMessageParamTypes.splitParamClass(key) - if head in message.ConfigMessageParamTypes.ParamClasses: + head, tail = _ConfigMessageParamTypes.splitParamClass(key) + if head in _ConfigMessageParamTypes.ParamClasses: return tail return tail @@ -446,7 +446,7 @@ continue key = node.key() - result = node.values.get(consts.ConfigValueClass.Current, None) + result = node.values.get(ConfigValueClass.Current, None) if result is not None: out[key] = result[0] return out This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-01 13:24:01
|
Revision: 468 http://fclient.svn.sourceforge.net/fclient/?rev=468&view=rev Author: jUrner Date: 2008-07-01 06:23:33 -0700 (Tue, 01 Jul 2008) Log Message: ----------- removed some leftovers Modified Paths: -------------- trunk/fcp2/src/fcp2/__init__.py Modified: trunk/fcp2/src/fcp2/__init__.py =================================================================== --- trunk/fcp2/src/fcp2/__init__.py 2008-07-01 11:29:17 UTC (rev 467) +++ trunk/fcp2/src/fcp2/__init__.py 2008-07-01 13:23:33 UTC (rev 468) @@ -33,5 +33,4 @@ #**************************************************************************************** # #**************************************************************************************** -for i in sorted(dir()): print i -print '<<<<<<<<<<<<<<<<<<<' \ No newline at end of file + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-01 11:29:09
|
Revision: 467 http://fclient.svn.sourceforge.net/fclient/?rev=467&view=rev Author: jUrner Date: 2008-07-01 04:29:17 -0700 (Tue, 01 Jul 2008) Log Message: ----------- epydoc does not create docs for imported symbols. use showimports as workaround Modified Paths: -------------- trunk/fcp2/src/fcp2/scripts/gen_docs.py Modified: trunk/fcp2/src/fcp2/scripts/gen_docs.py =================================================================== --- trunk/fcp2/src/fcp2/scripts/gen_docs.py 2008-07-01 11:28:33 UTC (rev 466) +++ trunk/fcp2/src/fcp2/scripts/gen_docs.py 2008-07-01 11:29:17 UTC (rev 467) @@ -50,6 +50,7 @@ '-v', '-o%s' % EPYDOC_DIR, '--src-code-tab-width', '4', + '--show-imports', #'--debug', PACKAGE_DIR, ] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-01 11:28:24
|
Revision: 466 http://fclient.svn.sourceforge.net/fclient/?rev=466&view=rev Author: jUrner Date: 2008-07-01 04:28:33 -0700 (Tue, 01 Jul 2008) Log Message: ----------- for ease of use, all necessary symbols are now imported to main Modified Paths: -------------- trunk/fcp2/src/fcp2/types.py Modified: trunk/fcp2/src/fcp2/types.py =================================================================== --- trunk/fcp2/src/fcp2/types.py 2008-07-01 11:28:16 UTC (rev 465) +++ trunk/fcp2/src/fcp2/types.py 2008-07-01 11:28:33 UTC (rev 466) @@ -24,7 +24,7 @@ #************************************************************************************* # #************************************************************************************* -class FcpType(object): +class Type(object): @classmethod def pythonToFcp(clss, value): @@ -35,7 +35,7 @@ return value -class FcpTypeString(FcpType): +class TypeString(Type): @classmethod def pythonToFcp(clss, value): @@ -46,7 +46,7 @@ return value -class FcpTypeBool(FcpType): +class TypeBool(Type): @classmethod def pythonToFcp(clss, value): @@ -57,7 +57,7 @@ return value == consts.FcpTrue -class FcpTypeInt(FcpType): +class TypeInt(Type): @classmethod def pythonToFcp(clss, value): @@ -68,7 +68,7 @@ return int(value) -class FcpTypeFloat(FcpType): +class TypeFloat(Type): @classmethod def pythonToFcp(clss, value): @@ -80,7 +80,7 @@ # GetFailed sets the ExpectedDataLenght field to '' (empty string). Fix this to show up as -1 -class FcpTypeInt_GetFailed_ExpectedDataLenght(FcpType): +class TypeInt_GetFailed_ExpectedDataLenght(Type): @classmethod def pythonToFcp(clss, value): @@ -93,7 +93,7 @@ return int(value) -class FcpTypeIntWithBounds(FcpType): +class TypeIntWithBounds(Type): def __init__(self, lowerBound, upperBound): self.lowerBound = lowerBound @@ -106,7 +106,7 @@ return int(value) -class FcpTypeBase64EncodedString(FcpType): +class TypeBase64EncodedString(Type): @classmethod def pythonToFcp(clss, value): @@ -117,7 +117,7 @@ return base64.b64decode(value) -class FcpTypeTime(FcpType): +class TypeTime(Type): @classmethod def pythonToFcp(clss, value): @@ -127,19 +127,19 @@ def fcpToPython(clss, value): return int(value) / 1000 -class FcpTypeTimeDelta(FcpType): +class TypeTimeDelta(Type): """Time durations passed as tuple((int) number, modifier). For modifiers see : L{consts.TimeDeltaPostfix}. Number can be -1 aswell, meaniong 'not set' or 'undefined'. - >>> FcpTypeTimeDelta.fcpToPython('1000day') + >>> TypeTimeDelta.fcpToPython('1000day') (1000, 'day') - >>> FcpTypeTimeDelta.fcpToPython('arbitrary') + >>> TypeTimeDelta.fcpToPython('arbitrary') (-1, '') - >>> FcpTypeTimeDelta.pythonToFcp( (1000, 'day') ) + >>> TypeTimeDelta.pythonToFcp( (1000, 'day') ) '1000day' """ @@ -160,31 +160,31 @@ return (num, tail) return (-1, consts.TimeDeltaPostfix.Second) -class FcpTypePercent(FcpTypeFloat): pass -class FcpTypeUri(FcpType): pass +class TypePercent(TypeFloat): pass +class TypeUri(Type): pass -class FcpTypeIP(FcpType): pass -class FcpTypeIPList(FcpType): pass -class FcpTypeIPort(FcpType): pass -class FcpTypeStringList(FcpType): pass -class FcpTypeDirname(FcpType): pass -class FcpTypeFilename(FcpType): pass -class FcpTypeByteAmount(FcpType): +class TypeIP(Type): pass +class TypeIPList(Type): pass +class TypeIPort(Type): pass +class TypeStringList(Type): pass +class TypeDirname(Type): pass +class TypeFilename(Type): pass +class TypeByteAmount(Type): """Byte amounts are passed as tuple((int, float) number, modifier). For modifiers see : L{consts.ByteAmountPostfix}. Number of bytes can be -1 aswell, meaniong 'not set' or 'undefined'. - >>> FcpTypeByteAmount.fcpToPython('1000k') + >>> TypeByteAmount.fcpToPython('1000k') (1000, 'k') - >>> FcpTypeByteAmount.fcpToPython('1.3k') + >>> TypeByteAmount.fcpToPython('1.3k') (1.3, 'k') - >>> FcpTypeByteAmount.fcpToPython('arbitrary') + >>> TypeByteAmount.fcpToPython('arbitrary') (-1, '') - >>> FcpTypeByteAmount.pythonToFcp( (1000, 'k') ) + >>> TypeByteAmount.pythonToFcp( (1000, 'k') ) '1000k' """ @@ -207,14 +207,14 @@ return (num, tail) return (-1, consts.ByteAmountPostfix.Bytes) -class FcpTypePercent(FcpTypeFloat): pass -class FcpTypeUri(FcpType): pass +class TypePercent(TypeFloat): pass +class TypeUri(Type): pass # special choice types for config message -class FcpTypeChoiceFProxyCss(FcpType): +class TypeChoiceFProxyCss(Type): Clean = 'Clean' Boxed = 'boxed' GrayAndBlue = 'grayandblue' @@ -223,7 +223,7 @@ ChoicesAll = (Clean, Boxed, GrayAndBlue, Sky) ChoicesAllowMultiple = False -class FcpTypeChoiceLoggerPriority(FcpType): +class TypeChoiceLoggerPriority(Type): Error = 'ERROR' Normal = 'NORMAL' Minor = 'MINOR' @@ -232,7 +232,7 @@ ChoicesAll = (Error, Normal, Minor, Debug) ChoicesAllowMultiple = False -class FcpTypeChoiceNodeDownloadAllowedDirs(FcpType): +class TypeChoiceNodeDownloadAllowedDirs(Type): All = 'all' Downloads = 'downloads' Nowhere = '' @@ -240,13 +240,13 @@ ChoicesAll = (All, Downloads, Nowhere) ChoicesAllowMultiple = False -class FcpTypeChoiceNodeUploadAllowedDirs(FcpType): +class TypeChoiceNodeUploadAllowedDirs(Type): All = 'all' Nowhere = '' ChoicesAll = (All, Nowhere) ChoicesAllowMultiple = False -class FcpTypeChoicePriorityPolicy(FcpType): +class TypeChoicePriorityPolicy(Type): Hard = 'HARD' Soft = 'SOFT' @@ -254,7 +254,7 @@ ChoicesAllowMultiple = False -class FcpTypeChoiceSSLVersion(FcpType): +class TypeChoiceSSLVersion(Type): Stl = 'STL' SslV3 = 'SSLV3' TlsV1 = 'TLSv1' @@ -262,6 +262,8 @@ ChoicesAll = (Stl, SslV3, TlsV1) ChoicesAllowMultiple = False + +__all__ = [i for i in dir() if i[0].isupper() and not i.startswith('_')] #******************************************************************************************** # #******************************************************************************************** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-01 11:28:17
|
Revision: 465 http://fclient.svn.sourceforge.net/fclient/?rev=465&view=rev Author: jUrner Date: 2008-07-01 04:28:16 -0700 (Tue, 01 Jul 2008) Log Message: ----------- for ease of use, all necessary symbols are now imported to main Modified Paths: -------------- trunk/fcp2/src/fcp2/test_fcp/test_key.py Modified: trunk/fcp2/src/fcp2/test_fcp/test_key.py =================================================================== --- trunk/fcp2/src/fcp2/test_fcp/test_key.py 2008-07-01 11:28:03 UTC (rev 464) +++ trunk/fcp2/src/fcp2/test_fcp/test_key.py 2008-07-01 11:28:16 UTC (rev 465) @@ -13,36 +13,38 @@ def __del__(self): sys.path.pop(0) hack = _RelImportHack(3) -from fcp2.client import Client -from fcp2 import consts -from fcp2 import key -from fcp2 import types +import fcp2 - - del hack #<-- rel import hack + #**************************************************************************************** # #**************************************************************************************** +# for testing some valid key data +DummyKeyData = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA' + +#**************************************************************************************** +# +#**************************************************************************************** class Test_CHK(unittest.TestCase): def test_fromString(self): - p = 'CHK@' + key.DummyKeyData + '/' - myKey = key.CHK.fromString(p) - self.assertEqual(myKey.keyData, key.DummyKeyData) + p = 'CHK@' + DummyKeyData + '/' + myKey = fcp2.KeyCHK.fromString(p) + self.assertEqual(myKey.keyData, DummyKeyData) self.failUnless(myKey.filename is None) self.assertEqual(myKey.toString(), p) - p = 'CHK@' + key.DummyKeyData + '/foo/' - myKey = key.CHK.fromString(p) - self.assertEqual(myKey.keyData, key.DummyKeyData) + p = 'CHK@' + DummyKeyData + '/foo/' + myKey = fcp2.KeyCHK.fromString(p) + self.assertEqual(myKey.keyData, DummyKeyData) self.assertEqual(myKey.filename, 'foo') self.assertEqual(myKey.toString(), p) p = 'CHK@' - myKey = key.CHK.fromString(p) + myKey = fcp2.KeyCHK.fromString(p) self.failUnless(myKey is None) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-01 11:28:00
|
Revision: 464 http://fclient.svn.sourceforge.net/fclient/?rev=464&view=rev Author: jUrner Date: 2008-07-01 04:28:03 -0700 (Tue, 01 Jul 2008) Log Message: ----------- for ease of use, all necessary symbols are now imported to main Modified Paths: -------------- trunk/fcp2/src/fcp2/test_fcp/test_config.py Modified: trunk/fcp2/src/fcp2/test_fcp/test_config.py =================================================================== --- trunk/fcp2/src/fcp2/test_fcp/test_config.py 2008-07-01 11:27:56 UTC (rev 463) +++ trunk/fcp2/src/fcp2/test_fcp/test_config.py 2008-07-01 11:28:03 UTC (rev 464) @@ -13,12 +13,8 @@ def __del__(self): sys.path.pop(0) hack = _RelImportHack(3) -from fcp2.client import Client -from fcp2 import consts -from fcp2 import types +import fcp2 - - del hack #<-- rel import hack #**************************************************************************************** @@ -35,7 +31,7 @@ 'default.console.enabled': 'false', } - cfg = Client.config.Config(Msg) + cfg = fcp2.Config(Msg) # check if all items and values have been set as expected consoleItem = cfg.children.get('console', None) @@ -44,18 +40,18 @@ enabled = consoleItem.children.get('enabled', None) self.failIf(enabled is None) - current = enabled.values.get(consts.ConfigValueClass.Current, None) + current = enabled.values.get(fcp2.ConfigValueClass.Current, None) self.failIf(current is None) value, valueType = current self.assertEqual(value, 'true') - self.assertEqual(valueType, types.FcpTypeBool) + self.assertEqual(valueType, fcp2.TypeBool) - default = enabled.values.get(consts.ConfigValueClass.Default, None) + default = enabled.values.get(fcp2.ConfigValueClass.Default, None) self.failIf(default is None) value, valueType = default self.assertEqual(value, 'false') - self.assertEqual(valueType, types.FcpTypeBool) + self.assertEqual(valueType, fcp2.TypeBool) #********************************************************************************* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jU...@us...> - 2008-07-01 11:27:47
|
Revision: 463 http://fclient.svn.sourceforge.net/fclient/?rev=463&view=rev Author: jUrner Date: 2008-07-01 04:27:56 -0700 (Tue, 01 Jul 2008) Log Message: ----------- for ease of use, all necessary symbols are now imported to main Modified Paths: -------------- trunk/fcp2/src/fcp2/test_fcp/test_client.py Modified: trunk/fcp2/src/fcp2/test_fcp/test_client.py =================================================================== --- trunk/fcp2/src/fcp2/test_fcp/test_client.py 2008-07-01 11:27:47 UTC (rev 462) +++ trunk/fcp2/src/fcp2/test_fcp/test_client.py 2008-07-01 11:27:56 UTC (rev 463) @@ -17,13 +17,8 @@ def __del__(self): sys.path.pop(0) hack = _RelImportHack(3) -from fcp2 import client -from fcp2.client import Client -from fcp2 import consts +import fcp2 -from fcp2 import iohandler -from fcp2 import message - del hack #<-- rel import hack @@ -34,16 +29,17 @@ DIR = os.path.dirname(os.path.abspath(__file__)) ##TestAgainstNode = 0 # don't know how to test against node. Do not touch this! - +# for testing some valid key data +DummyKeyData = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,AAAAAAA' #*********************************************************************************** # #*********************************************************************************** class BaseTestClient(unittest.TestCase): """Base class for all tests""" - client = Client( - #debugVerbosity=Client.consts.DebugVerbosity.Debug - debugVerbosity=Client.consts.DebugVerbosity.Quiet + client = fcp2.Client( + #debugVerbosity=Client.fcp2.DebugVerbosity.Debug + debugVerbosity=fcp2.ConstDebugVerbosity.Quiet ) client.ioHandler.setIOPrototype(DummyIO) @@ -88,7 +84,7 @@ self.assertHasNextEvent( self.client.events.ClientConnected, - consts.Message.NodeHello, + fcp2.MsgNodeHello, ) self.assertHasNextEvent(None) self.assertHasNextMessage(None) @@ -100,14 +96,14 @@ self.client.close() self.assertHasNextEvent( self.client.events.ClientDisconnected, - consts.Message.ClientDisconnected, - ('DisconnectReason', consts.DisconnectReason.Close), + fcp2.MsgClientDisconnected, + ('DisconnectReason', fcp2.ConstDisconnectReason.Close), ) def assertHasNextEvent(self, expectedEvent=None, - messageName=None, + message=None, param1=None, param2=None, param3=None, @@ -130,8 +126,8 @@ event, msg = self.events.pop(0) self.assertEqual(event, expectedEvent) - if messageName is not None: - self.assertEqual(msg.name, messageName) + if message is not None: + self.assertEqual(msg.name, message.name) if param1 is not None: param1, value1 = param1 self.failUnless(param1 in msg.params) @@ -159,7 +155,7 @@ return msg def assertHasNextMessage(self, - messageName, + message, param1=None, param2=None, param3=None, @@ -185,11 +181,11 @@ @return: message if a message was received or None """ msg = self.getNextMessage() - if messageName is None: + if message is None: self.failUnless(msg is None) else: self.failIf(msg is None) - self.assertEqual(msg.name, messageName) + self.assertEqual(msg.name, message.name) if param1 is not None: param1, value1 = param1 self.failUnless(param1 in msg.params) @@ -256,10 +252,10 @@ def sendResponseMessage(self, messageName, data=None, callNext=True, **params): """Sends a message to the client""" - if messageName in message.MessagesAll: - msgClass = message.MessagesAll[messageName] + if messageName in fcp2.MessagesAll: + msgClass = fcp2.MessagesAll[messageName] else: - msgClass = message.newMessageClass(messageName) + msgClass = fcp2.newMessageClass(messageName) msg = msgClass(data=data, **params) self.client.ioHandler.io.readBuffer += msg.toString() if callNext: @@ -280,7 +276,7 @@ self.client.ioHandler.io.setReverseDirection(True) try: msg = self.client.ioHandler.readMessage() - except consts.IOTimeoutError: + except fcp2.ErrorIOTimeout: return None finally: self.client.ioHandler.io.setReverseDirection(False) @@ -328,8 +324,8 @@ self.client.close() self.assertHasNextEvent( self.client.events.ClientDisconnected, - consts.Message.ClientDisconnected, - ('DisconnectReason', consts.DisconnectReason.Close), + fcp2.MsgClientDisconnected, + ('DisconnectReason', fcp2.ConstDisconnectReason.Close), ) def test_close_connected_client(self): @@ -337,8 +333,8 @@ self.client.close() self.assertHasNextEvent( self.client.events.ClientDisconnected, - consts.Message.ClientDisconnected, - ('DisconnectReason', consts.DisconnectReason.Close), + fcp2.MsgClientDisconnected, + ('DisconnectReason', fcp2.ConstDisconnectReason.Close), ) #*********************************************************************************** @@ -388,7 +384,7 @@ self.assertHasNextEvent( self.client.events.ClientConnected, - consts.Message.NodeHello, + fcp2.MsgNodeHello, ) self.assertHasNextEvent(None) self.assertHasNextMessage(None) @@ -403,8 +399,8 @@ self.failUnless(nodeHello is None) self.assertHasNextEvent( self.client.events.ClientDisconnected, - consts.Message.ClientDisconnected, - ('DisconnectReason', consts.DisconnectReason.IOConnectFailed), + fcp2.MsgClientDisconnected, + ('DisconnectReason', fcp2.ConstDisconnectReason.IOConnectFailed), ) self.assertHasNextEvent(None) self.assertHasNextMessage(None) @@ -418,8 +414,8 @@ self.failUnless(nodeHello is None) self.assertHasNextEvent( self.client.events.ClientDisconnected, - consts.Message.ClientDisconnected, - ('DisconnectReason', consts.DisconnectReason.NoNodeHello), + fcp2.MsgClientDisconnected, + ('DisconnectReason', fcp2.ConstDisconnectReason.NoNodeHello), ) self.assertHasNextEvent(None) self.assertHasNextMessage(None) @@ -434,12 +430,12 @@ enum.next() except StopIteration: break - except consts.IOBrokenError, d: + except fcp2.ErrorIOBroken, d: errorRaised = True self.assertHasNextEvent( self.client.events.ClientDisconnected, - consts.Message.ClientDisconnected, - ('DisconnectReason', consts.DisconnectReason.ConnectionDied), + fcp2.MsgClientDisconnected, + ('DisconnectReason', fcp2.ConstDisconnectReason.ConnectionDied), #('Param', None), ) break @@ -462,8 +458,8 @@ self.failUnless(nodeHello is None) self.assertHasNextEvent( self.client.events.ClientDisconnected, - consts.Message.ClientDisconnected, - ('DisconnectReason', consts.DisconnectReason.UnknownNodeHello), + fcp2.MsgClientDisconnected, + ('DisconnectReason', fcp2.ConstDisconnectReason.UnknownNodeHello), ) self.assertHasNextEvent(None) self.assertHasNextMessage(None) @@ -491,7 +487,7 @@ self.assertHasNextEvent( self.client.events.ClientConnected, - consts.Message.NodeHello, + fcp2.MsgNodeHello, ) self.assertHasNextEvent(None) #self.assertHasNextMessage(None) # due to our message hacking, NodeHello is still in io @@ -522,12 +518,12 @@ self.assertHasNextEvent( self.client.events.ClientDisconnected, - consts.Message.ClientDisconnected, - ('DisconnectReason', consts.DisconnectReason.Reconnect) + fcp2.MsgClientDisconnected, + ('DisconnectReason', fcp2.ConstDisconnectReason.Reconnect) ) self.assertHasNextEvent( self.client.events.ClientConnected, - consts.Message.NodeHello, + fcp2.MsgNodeHello, ) self.assertHasNextEvent(None) #self.assertHasNextMessage(None) # due to our message hacking, NodeHello is still in io @@ -556,8 +552,8 @@ self.assertHasNextEvent( self.client.events.ClientDisconnected, - consts.Message.ClientDisconnected, - ('DisconnectReason', consts.DisconnectReason.VersionMissmatch) + fcp2.MsgClientDisconnected, + ('DisconnectReason', fcp2.ConstDisconnectReason.VersionMissmatch) ) self.assertHasNextEvent(None) self.assertHasNextMessage(None) @@ -586,8 +582,8 @@ self.assertHasNextEvent( self.client.events.ClientDisconnected, - consts.Message.ClientDisconnected, - ('DisconnectReason', consts.DisconnectReason.VersionMissmatch) + fcp2.MsgClientDisconnected, + ('DisconnectReason', fcp2.ConstDisconnectReason.VersionMissmatch) ) self.assertHasNextEvent(None) self.assertHasNextMessage(None) @@ -608,8 +604,8 @@ self.assertHasNextEvent( self.client.events.ClientDisconnected, - consts.Message.ClientDisconnected, - ('DisconnectReason', consts.DisconnectReason.DuplicateClientName) + fcp2.MsgClientDisconnected, + ('DisconnectReason', fcp2.ConstDisconnectReason.DuplicateClientName) ) self.assertHasNextEvent(None) self.assertHasNextMessage(None) @@ -624,7 +620,7 @@ def test_closeNode(self): self.connectClient() self.client.closeNode() - self.assertHasNextMessage('Shutdown') + self.assertHasNextMessage(fcp2.MsgShutdown) self.sendResponseMessage( 'ProtocolError', Code='18' @@ -632,8 +628,8 @@ self.assertHasNextEvent( self.client.events.ClientDisconnected, - consts.Message.ClientDisconnected, - ('DisconnectReason', consts.DisconnectReason.NodeClosing) + fcp2.MsgClientDisconnected, + ('DisconnectReason', fcp2.ConstDisconnectReason.NodeClosing) ) self.assertHasNextEvent(None) self.assertHasNextMessage(None) @@ -665,7 +661,7 @@ def test_get_setDebugVerbosity(self): oldVerbosity = self.client.getDebugVerbosity() - self.client.setDebugVerbosity(self.client.consts.DebugVerbosity.Quiet) + self.client.setDebugVerbosity(fcp2.ConstDebugVerbosity.Quiet) self.client.setDebugVerbosity(oldVerbosity) #*********************************************************************************** @@ -727,7 +723,7 @@ msg = self.client.next() msg2 = self.assertHasNextEvent( self.client.events.Idle, - self.client.message.ClientSocketTimeout.name, + fcp2.MsgClientSocketTimeout, ) self.failUnless(msg == msg2) @@ -736,11 +732,11 @@ self.connectClient() self.getIO().setBroken(True) - self.assertRaises(consts.IOBrokenError, self.client.next, ) + self.assertRaises(fcp2.ErrorIOBroken, self.client.next, ) self.assertHasNextEvent( self.client.events.ClientDisconnected, - consts.Message.ClientDisconnected, - ('DisconnectReason', consts.DisconnectReason.ConnectionDied) + fcp2.MsgClientDisconnected, + ('DisconnectReason', fcp2.ConstDisconnectReason.ConnectionDied) ) self.assertHasNextEvent(None) @@ -777,11 +773,11 @@ self.connectClient() self.getIO().setBroken(True) - self.assertRaises(consts.IOBrokenError, self.client.sendMessage, self.client.message.ClientHello()) + self.assertRaises(fcp2.ErrorIOBroken, self.client.sendMessage, fcp2.MsgClientHello()) self.assertHasNextEvent( self.client.events.ClientDisconnected, - consts.Message.ClientDisconnected, - ('DisconnectReason', consts.DisconnectReason.ConnectionDied) + fcp2.MsgClientDisconnected, + ('DisconnectReason', fcp2.ConstDisconnectReason.ConnectionDied) ) self.assertHasNextEvent(None) @@ -791,9 +787,9 @@ def test_messageSend(self): self.connectClient() - self.client.sendMessage(self.client.message.ClientHello()) + self.client.sendMessage(fcp2.MsgClientHello()) msg = self.client.next() - self.assertHasNextMessage('ClientHello') + self.assertHasNextMessage(fcp2.MsgClientHello) self.assertHasNextEvent(self.client.events.Idle) self.assertHasNextEvent(None) @@ -818,7 +814,7 @@ withDataTypes=True, ) msg = self.client.next() - self.assertHasNextMessage('GetConfig', + self.assertHasNextMessage(fcp2.MsgGetConfig, ('WithCurrent', True), ('WithDefaults', True), ('WithExpertFlag', True), @@ -836,7 +832,7 @@ ) self.assertHasNextEvent( self.client.events.ConfigData, - consts.Message.ConfigData, + fcp2.MsgConfigData, ('foo', '1234') ) @@ -855,7 +851,7 @@ {'foo': '1234'} ) msg = self.client.next() - self.assertHasNextMessage('ModifyConfig', + self.assertHasNextMessage(fcp2.MsgModifyConfig, ('foo', '1234'), ) self.assertHasNextEvent(self.client.events.Idle) @@ -871,22 +867,22 @@ def test_100_request_registered(self): self.connectClient() - myKey = self.client.key.key('KSK@foo') + myKey = fcp2.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) + self.assertEqual(myRequest['RequestType'], fcp2.ConstRequestType.GetData) def test_300_message_send(self): self.connectClient() - myKey = self.client.key.key('KSK@foo') + myKey = fcp2.Key('KSK@foo') myIdentifier = self.client.getData(myKey) requestsAll = self.client.getRequests() self.assertHasNextMessage( - 'ClientGet', + fcp2.MsgClientGet, ('URI', myKey), ) @@ -898,11 +894,11 @@ def test_400_progress(self): self.connectClient() - myKey = self.client.key.key('KSK@foo') + myKey = fcp2.Key('KSK@foo') myIdentifier = self.client.getData(myKey) requestsAll = self.client.getRequests() - self.assertHasNextMessage('ClientGet') + self.assertHasNextMessage(fcp2.MsgClientGet) self.sendResponseMessage( 'SimpleProgress', Identifier=myIdentifier, @@ -915,7 +911,7 @@ self.assertHasNextEvent( self.client.events.RequestProgress, - 'ClientGet', + fcp2.MsgClientGet, ) self.assertHasNextEvent(None) @@ -926,11 +922,11 @@ def test_500_completed_successfuly(self): self.connectClient() - myKey = self.client.key.key('KSK@foo') + myKey = fcp2.Key('KSK@foo') myIdentifier = self.client.getData(myKey) requestsAll = self.client.getRequests() - self.assertHasNextMessage('ClientGet') + self.assertHasNextMessage(fcp2.MsgClientGet) data = 'foo' params = { 'Identifier': myIdentifier, @@ -955,10 +951,10 @@ # 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 + fcp2.MsgClientGet, + ('RequestStatus', fcp2.ConstRequestStatus.Success | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), data=data ) @@ -973,13 +969,13 @@ def test_600_completed_with_error(self): self.connectClient() - myKey = self.client.key.key('KSK@foo') + myKey = fcp2.Key('KSK@foo') myIdentifier = self.client.getData(myKey) requestsAll = self.client.getRequests() - self.assertHasNextMessage('ClientGet') + self.assertHasNextMessage(fcp2.MsgClientGet) self.sendResponseMessage( - 'GetFailed', + fcp2.MsgGetFailed.name, Code='28', # All data not found Identifier=myIdentifier, Global='false', @@ -987,10 +983,10 @@ ) self.assertHasNextEvent( self.client.events.RequestFailed, - consts.Message.ClientGet, - ('RequestStatus', consts.RequestStatus.Error | - consts.RequestStatus.RemovedFromQueue | - consts.RequestStatus.Completed + fcp2.MsgClientGet, + ('RequestStatus', fcp2.ConstRequestStatus.Error | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) @@ -1005,11 +1001,11 @@ def test_700_peristent_request_auto_retrieve_data(self): self.connectClient() - myKey = self.client.key.key('KSK@foo') - myIdentifier = self.client.getData(myKey, persistence=self.client.consts.Persistence.Forever) + myKey = fcp2.Key('KSK@foo') + myIdentifier = self.client.getData(myKey, persistence=fcp2.ConstPersistence.Forever) requestsAll = self.client.getRequests() - self.assertHasNextMessage('ClientGet') + self.assertHasNextMessage(fcp2.MsgClientGet) data = 'foo' params = { @@ -1023,7 +1019,7 @@ **params ) - self.assertHasNextMessage('GetRequestStatus') + self.assertHasNextMessage(fcp2.MsgGetRequestStatus) self.assertHasNextEvent(None) self.assertHasNextMessage(None) @@ -1033,11 +1029,11 @@ def test_800_peristent_request_not_removed_on_success(self): self.connectClient() - myKey = self.client.key.key('KSK@foo') - myIdentifier = self.client.getData(myKey, persistence=self.client.consts.Persistence.Forever) + myKey = fcp2.Key('KSK@foo') + myIdentifier = self.client.getData(myKey, persistence=fcp2.ConstPersistence.Forever) requestsAll = self.client.getRequests() - self.assertHasNextMessage('ClientGet') + self.assertHasNextMessage(fcp2.MsgClientGet) data = 'foo' self.sendResponseMessage( 'AllData', @@ -1059,11 +1055,11 @@ def test_900_peristent_request_not_removed_on_error(self): self.connectClient() - myKey = self.client.key.key('KSK@foo') - myIdentifier = self.client.getData(myKey, persistence=self.client.consts.Persistence.Forever) + myKey = fcp2.Key('KSK@foo') + myIdentifier = self.client.getData(myKey, persistence=fcp2.ConstPersistence.Forever) requestsAll = self.client.getRequests() - self.assertHasNextMessage('ClientGet') + self.assertHasNextMessage(fcp2.MsgClientGet) self.sendResponseMessage( 'GetFailed', Code='28', # All data not found @@ -1094,15 +1090,15 @@ callNext=False ) - self.assertRaises(consts.MessageParseError, self.client.next) + self.assertRaises(fcp2.ErrorMessageParse, self.client.next) self.failIf(myIdentifier in requestsAll) def test_920_restore_peristent_request_success(self): self.connectClient() requestsAll = self.client.getRequests() - myKey = self.client.key.key('KSK@foo') - myIdentifier = self.client.getData(myKey, persistence=self.client.consts.Persistence.Forever) + myKey = fcp2.Key('KSK@foo') + myIdentifier = self.client.getData(myKey, persistence=fcp2.ConstPersistence.Forever) self.failUnless(myIdentifier in requestsAll) myRequest = self.client.getRequest(myIdentifier) del requestsAll[myIdentifier] @@ -1115,9 +1111,9 @@ myRequest = self.client.getRequest(myIdentifier) msg = self.assertHasNextEvent( self.client.events.RequestRestored, - 'ClientGet', + fcp2.MsgClientGet, ('Identifier', myIdentifier), - ('RequestStatus', consts.RequestStatus.Restored), # no RequestStatus.Pending flag should be set here + ('RequestStatus', fcp2.ConstRequestStatus.Restored), # no RequestStatus.Pending flag should be set here ) @@ -1129,24 +1125,24 @@ def test_100_request_registered(self): self.connectClient() - myKey = self.client.key.key('KSK@foo') + myKey = fcp2.Key('KSK@foo') myIdentifier = self.client.getFile(myKey, '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) + self.assertEqual(myRequest['RequestType'], fcp2.ConstRequestType.GetFile) def test_200_key_object_is_accepted(self): self.connectClient() - myKey = self.client.key.key('KSK@foo') + myKey = fcp2.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') + myKey = fcp2.Key('KSK@foo') myIdentifier = self.client.getFile( myKey, os.path.join(DIR, 'DDATest.txt') @@ -1154,7 +1150,7 @@ myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage('ClientGet') + self.assertHasNextMessage(fcp2.MsgClientGet) self.sendResponseMessage( 'ProtocolError', Code=25, # DDADenied @@ -1166,7 +1162,7 @@ # client should respond with a TestDDARequest self.assertHasNextMessage( - consts.Message.TestDDARequest, + fcp2.MsgTestDDARequest, ('Directory', DIR), ('WantWriteDirectory', True) ) @@ -1184,7 +1180,7 @@ # client should respond with a TestDDAResponse self.assertHasNextMessage( - consts.Message.TestDDAResponse, + fcp2.MsgTestDDAResponse, ('Directory', DIR) ) @@ -1203,7 +1199,7 @@ self.failIf(os.path.isfile(fpath)) # client sahould send a new ClientGet - msg = self.assertHasNextMessage(consts.Message.ClientGet) + msg = self.assertHasNextMessage(fcp2.MsgClientGet) # no events should have been triggered upo to now self.assertHasNextEvent(None) @@ -1230,16 +1226,16 @@ def test_100_request_registered(self): self.connectClient() - myKey = self.client.key.key('KSK@foo') + myKey = fcp2.Key('KSK@foo') myIdentifier = self.client.getKeyInfo(myKey) requestsAll = self.client.getRequests() self.failUnless(myIdentifier in requestsAll) myRequest = self.client.getRequest(myIdentifier) - self.assertEqual(myRequest['RequestType'], self.client.consts.RequestType.GetKeyInfo) + self.assertEqual(myRequest['RequestType'], fcp2.ConstRequestType.GetKeyInfo) def test_200_key_object_is_accepted(self): self.connectClient() - myKey = self.client.key.key('KSK@foo') + myKey = fcp2.Key('KSK@foo') myIdentifier = self.client.getKeyInfo(myKey) requestsAll = self.client.getRequests() @@ -1247,12 +1243,12 @@ def test_300_getKeyInfo_Success(self): self.connectClient() - myKey = self.client.key.key('KSK@foo') + myKey = fcp2.Key('KSK@foo') myIdentifier = self.client.getKeyInfo(myKey) myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage('ClientGet') + self.assertHasNextMessage(fcp2.MsgClientGet) data = 'foo' params = { @@ -1267,10 +1263,10 @@ ) self.assertHasNextEvent( self.client.events.RequestCompleted, - consts.Message.ClientGet, - ('RequestStatus', consts.RequestStatus.Success | - consts.RequestStatus.RemovedFromQueue | - consts.RequestStatus.Completed + fcp2.MsgClientGet, + ('RequestStatus', fcp2.ConstRequestStatus.Success | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) self.failIf(myIdentifier in requestsAll) @@ -1284,12 +1280,12 @@ # test specdial case where ProtocolError.TooBig is handled as success # request a arbitrary uri - myKey = self.client.key.key('KSK@foo') + myKey = fcp2.Key('KSK@foo') myIdentifier = self.client.getKeyInfo(myKey) myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientGet) + self.assertHasNextMessage(fcp2.MsgClientGet) self.sendResponseMessage( 'GetFailed', Code='21', # Too big @@ -1299,10 +1295,10 @@ ) self.assertHasNextEvent( self.client.events.RequestCompleted, - consts.Message.ClientGet, - ('RequestStatus', consts.RequestStatus.Success | - consts.RequestStatus.RemovedFromQueue | - consts.RequestStatus.Completed + fcp2.MsgClientGet, + ('RequestStatus', fcp2.ConstRequestStatus.Success | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) self.failIf(myIdentifier in requestsAll) @@ -1315,12 +1311,12 @@ self.connectClient() # request a arbitrary file - myKey = self.client.key.key('KSK@foo') + myKey = fcp2.Key('KSK@foo') myIdentifier = self.client.getKeyInfo(myKey) myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientGet) + self.assertHasNextMessage(fcp2.MsgClientGet) self.sendResponseMessage( 'GetFailed', Code='28', # All data not found @@ -1330,10 +1326,10 @@ ) self.assertHasNextEvent( self.client.events.RequestFailed, - consts.Message.ClientGet, - ('RequestStatus', consts.RequestStatus.Error | - consts.RequestStatus.RemovedFromQueue | - consts.RequestStatus.Completed + fcp2.MsgClientGet, + ('RequestStatus', fcp2.ConstRequestStatus.Error | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) self.failIf(myIdentifier in requestsAll) @@ -1351,8 +1347,8 @@ self.sendResponseMessage('CloseConnectionDuplicateClientName') msg = self.assertHasNextEvent( self.client.events.ClientDisconnected, - consts.Message.ClientDisconnected, - ('DisconnectReason', consts.DisconnectReason.DuplicateClientName), + fcp2.MsgClientDisconnected, + ('DisconnectReason', fcp2.ConstDisconnectReason.DuplicateClientName), ) self.failIf(self.ioOpen()) @@ -1363,13 +1359,13 @@ def test_1001_SocketDied_Receive(self): self.connectClient() self.getIO().setBroken(True) - self.assertRaises(consts.IOBrokenError, self.client.next) + self.assertRaises(fcp2.ErrorIOBroken, self.client.next) # check if ClientDisconnected events has been triggered msg = self.assertHasNextEvent( self.client.events.ClientDisconnected, - consts.Message.ClientDisconnected, - ('DisconnectReason', consts.DisconnectReason.ConnectionDied), + fcp2.MsgClientDisconnected, + ('DisconnectReason', fcp2.ConstDisconnectReason.ConnectionDied), ) self.failIf(self.ioOpen()) @@ -1383,13 +1379,13 @@ self.getIO().setBroken(True) # send a test message - self.assertRaises(consts.IOBrokenError, self.client.sendMessage, message.newMessageClass('test')()) + self.assertRaises(fcp2.ErrorIOBroken, self.client.sendMessage, fcp2.newMessageClass('test')()) # check if ClientDisconnected events has been triggered msg = self.assertHasNextEvent( self.client.events.ClientDisconnected, - consts.Message.ClientDisconnected, - ('DisconnectReason', consts.DisconnectReason.ConnectionDied), + fcp2.MsgClientDisconnected, + ('DisconnectReason', fcp2.ConstDisconnectReason.ConnectionDied), ) self.failIf(self.ioOpen()) @@ -1402,7 +1398,7 @@ self.connectClient() self.client.closeNode() - msg = self.assertHasNextMessage(consts.Message.Shutdown) + msg = self.assertHasNextMessage(fcp2.MsgShutdown) self.sendResponseMessage( 'ProtocolError', Code='18', # Shutting down @@ -1411,8 +1407,8 @@ # check events the client triggered msg = self.assertHasNextEvent( self.client.events.ClientDisconnected, - consts.Message.ClientDisconnected, - ('DisconnectReason', consts.DisconnectReason.NodeClosing) + fcp2.MsgClientDisconnected, + ('DisconnectReason', fcp2.ConstDisconnectReason.NodeClosing) ) self.failIf(self.ioOpen()) @@ -1426,7 +1422,7 @@ for n, nodeHello in enumerate(self.client.iterConnect(duration=1, timeout=0.1)): if n == 2: self.assertHasNextMessage( - consts.Message.ClientHello + fcp2.MsgClientHello ) self.sendResponseMessage( 'NodeHello', @@ -1447,8 +1443,8 @@ # check events the client triggered msg = self.assertHasNextEvent( self.client.events.ClientDisconnected, - consts.Message.ClientDisconnected, - ('DisconnectReason', consts.DisconnectReason.VersionMissmatch) + fcp2.MsgClientDisconnected, + ('DisconnectReason', fcp2.ConstDisconnectReason.VersionMissmatch) ) self.failIf(self.ioOpen()) @@ -1470,12 +1466,12 @@ myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientGet) + self.assertHasNextMessage(fcp2.MsgClientGet) self.assertHasNextEvent(None) self.failUnless(myIdentifier in requestsAll) self.assertEqual(myIdentifier, myRequest['Identifier']) - self.assertEqual(myRequest['RequestStatus'], consts.RequestStatus.Null) + self.assertEqual(myRequest['RequestStatus'], fcp2.ConstRequestStatus.Null) self.assertHasNextEvent(None) self.assertHasNextMessage(None) @@ -1494,7 +1490,7 @@ myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientGet) + self.assertHasNextMessage(fcp2.MsgClientGet) # respond to the file request self.sendResponseMessage( @@ -1544,23 +1540,23 @@ # 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 + fcp2.MsgClientGet, + ('RequestStatus', fcp2.ConstRequestStatus.Success | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), data=data ) self.failIf(myIdentifier in requestsAll) - self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed) + self.failUnless(myRequest['RequestStatus'] & fcp2.ConstRequestStatus.Completed) # cheat a bit to test peristence == Forever (client should not remove request) requestsAll[myIdentifier] =myRequest - myRequest['Persistence'] = consts.Persistence.Forever - myRequest['RequestStatus'] &= ~(consts.RequestStatus.Success | - consts.RequestStatus.Completed | - consts.RequestStatus.RemovedFromQueue + myRequest['Persistence'] = fcp2.Persistence.Forever + myRequest['RequestStatus'] &= ~(fcp2.ConstRequestStatus.Success | + fcp2.ConstRequestStatus.Completed | + fcp2.ConstRequestStatus.RemovedFromQueue ) self.sendResponseMessage( 'AllData', @@ -1573,12 +1569,12 @@ # client should complete but not remove the request self.assertHasNextEvent( self.client.events.RequestCompleted, - consts.Message.ClientGet, - ('RequestStatus', consts.RequestStatus.Success | consts.RequestStatus.Completed), + fcp2.MsgClientGet, + ('RequestStatus', fcp2.ConstRequestStatus.Success | fcp2.ConstRequestStatus.Completed), data=data ) self.failUnless(myIdentifier in requestsAll) - self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed) + self.failUnless(myRequest['RequestStatus'] & fcp2.ConstRequestStatus.Completed) self.assertHasNextEvent(None) self.assertHasNextMessage(None) @@ -1596,7 +1592,7 @@ myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientGet) + self.assertHasNextMessage(fcp2.MsgClientGet) # respond to the file request self.sendResponseMessage( @@ -1617,10 +1613,10 @@ # client should complete request and remove it self.assertHasNextEvent( self.client.events.RequestFailed, - consts.Message.ClientGet, - ('RequestStatus', consts.RequestStatus.Error | - consts.RequestStatus.RemovedFromQueue | - consts.RequestStatus.Completed + fcp2.MsgClientGet, + ('RequestStatus', fcp2.ConstRequestStatus.Error | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) self.assertHasNextEvent(None) @@ -1631,10 +1627,10 @@ # cheat a bit to test peristence == Forever (client should not remove request) requestsAll[myIdentifier] =myRequest - myRequest['Persistence'] = consts.Persistence.Forever - myRequest['RequestStatus'] &= ~(consts.RequestStatus.Error | - consts.RequestStatus.Completed | - consts.RequestStatus.RemovedFromQueue + myRequest['Persistence'] = fcp2.Persistence.Forever + myRequest['RequestStatus'] &= ~(fcp2.ConstRequestStatus.Error | + fcp2.ConstRequestStatus.Completed | + fcp2.ConstRequestStatus.RemovedFromQueue ) self.sendResponseMessage( 'GetFailed', @@ -1647,8 +1643,8 @@ # client should complete but not remove the request self.assertHasNextEvent( self.client.events.RequestFailed, - consts.Message.ClientGet, - ('RequestStatus', consts.RequestStatus.Error | consts.RequestStatus.Completed), + fcp2.MsgClientGet, + ('RequestStatus', fcp2.ConstRequestStatus.Error | fcp2.ConstRequestStatus.Completed), ) self.failUnless(myIdentifier in requestsAll) self.assertHasNextEvent(None) @@ -1668,7 +1664,7 @@ myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientGet) + self.assertHasNextMessage(fcp2.MsgClientGet) # respond to the file request self.sendResponseMessage( @@ -1691,14 +1687,14 @@ ) self.assertHasNextEvent( self.client.events.RequestCompleted, - consts.Message.ClientGet, - ('RequestStatus', consts.RequestStatus.Success | - consts.RequestStatus.RemovedFromQueue | - consts.RequestStatus.Completed + fcp2.MsgClientGet, + ('RequestStatus', fcp2.ConstRequestStatus.Success | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) self.failIf(myIdentifier in requestsAll) - self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed) + self.failUnless(myRequest['RequestStatus'] & fcp2.ConstRequestStatus.Completed) self.assertHasNextEvent(None) self.assertHasNextMessage(None) @@ -1715,7 +1711,7 @@ myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientGet) + self.assertHasNextMessage(fcp2.MsgClientGet) # respond to the file request self.sendResponseMessage( @@ -1735,10 +1731,10 @@ self.assertHasNextEvent( self.client.events.RequestFailed, - consts.Message.ClientGet, - ('RequestStatus', consts.RequestStatus.Error | - consts.RequestStatus.RemovedFromQueue | - consts.RequestStatus.Completed + fcp2.MsgClientGet, + ('RequestStatus', fcp2.ConstRequestStatus.Error | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) self.failIf(myIdentifier in requestsAll) @@ -1757,7 +1753,7 @@ myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientGet) + self.assertHasNextMessage(fcp2.MsgClientGet) # respond to the file request self.sendResponseMessage( @@ -1780,14 +1776,14 @@ ) self.assertHasNextEvent( self.client.events.RequestCompleted, - consts.Message.ClientGet, - ('RequestStatus', consts.RequestStatus.Success | - consts.RequestStatus.RemovedFromQueue | - consts.RequestStatus.Completed + fcp2.MsgClientGet, + ('RequestStatus', fcp2.ConstRequestStatus.Success | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) self.failIf(myIdentifier in requestsAll) - self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed) + self.failUnless(myRequest['RequestStatus'] & fcp2.ConstRequestStatus.Completed) self.assertHasNextEvent(None) self.assertHasNextMessage(None) @@ -1804,7 +1800,7 @@ myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientGet) + self.assertHasNextMessage(fcp2.MsgClientGet) # respond to the file request self.sendResponseMessage( @@ -1823,13 +1819,13 @@ ) self.assertHasNextEvent( self.client.events.RequestCompleted, - consts.Message.ClientGet, - ('RequestStatus', consts.RequestStatus.Success | - consts.RequestStatus.RemovedFromQueue | - consts.RequestStatus.Completed + fcp2.MsgClientGet, + ('RequestStatus', fcp2.ConstRequestStatus.Success | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) - self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed) + self.failUnless(myRequest['RequestStatus'] & fcp2.ConstRequestStatus.Completed) self.assertHasNextEvent(None) self.assertHasNextMessage(None) @@ -1846,7 +1842,7 @@ myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientGet) + self.assertHasNextMessage(fcp2.MsgClientGet) # respond to the file request self.sendResponseMessage( @@ -1865,13 +1861,13 @@ ) self.assertHasNextEvent( self.client.events.RequestFailed, - consts.Message.ClientGet, - ('RequestStatus', consts.RequestStatus.Error | - consts.RequestStatus.RemovedFromQueue | - consts.RequestStatus.Completed + fcp2.MsgClientGet, + ('RequestStatus', fcp2.ConstRequestStatus.Error | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) - self.failUnless(myRequest['RequestStatus'] & consts.RequestStatus.Completed) + self.failUnless(myRequest['RequestStatus'] & fcp2.ConstRequestStatus.Completed) self.assertHasNextEvent(None) self.assertHasNextMessage(None) @@ -1886,7 +1882,7 @@ def test_putData_Success(self): self.connectClient() - myKey = self.client.key.KSK('foo') + myKey = fcp2.KeyKSK('foo') myIdentifier = self.client.putData( myKey, 'any data here' @@ -1894,7 +1890,7 @@ myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientPut) + self.assertHasNextMessage(fcp2.MsgClientPut) self.failUnless(myIdentifier in requestsAll) self.sendResponseMessage( @@ -1905,10 +1901,10 @@ self.assertHasNextEvent( self.client.events.RequestCompleted, - consts.Message.ClientPut, - ('RequestStatus', consts.RequestStatus.Success | - consts.RequestStatus.RemovedFromQueue | - consts.RequestStatus.Completed + fcp2.MsgClientPut, + ('RequestStatus', fcp2.ConstRequestStatus.Success | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) @@ -1920,7 +1916,7 @@ def test_putData_Failure(self): self.connectClient() - myKey = self.client.key.KSK('foo') + myKey = fcp2.KeyKSK('foo') myIdentifier = self.client.putData( myKey, 'any data here' @@ -1929,7 +1925,7 @@ myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientPut) + self.assertHasNextMessage(fcp2.MsgClientPut) self.failUnless(myIdentifier in requestsAll) self.sendResponseMessage( @@ -1940,10 +1936,10 @@ self.assertHasNextEvent( self.client.events.RequestFailed, - consts.Message.ClientPut, - ('RequestStatus', consts.RequestStatus.Error | - consts.RequestStatus.RemovedFromQueue | - consts.RequestStatus.Completed + fcp2.MsgClientPut, + ('RequestStatus', fcp2.ConstRequestStatus.Error | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) @@ -1957,7 +1953,7 @@ def test_putDir_Success(self): self.connectClient() - myKey = self.client.key.KSK('foo') + myKey = fcp2.KeyKSK('foo') myIdentifier = self.client.putDir( myKey, 'myDirectory' @@ -1965,7 +1961,7 @@ myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientPutDiskDir) + self.assertHasNextMessage(fcp2.MsgClientPutDiskDir) self.failUnless(myIdentifier in requestsAll) self.sendResponseMessage( @@ -1976,10 +1972,10 @@ self.assertHasNextEvent( self.client.events.RequestCompleted, - consts.Message.ClientPutDiskDir, - ('RequestStatus', consts.RequestStatus.Success | - consts.RequestStatus.RemovedFromQueue | - consts.RequestStatus.Completed + fcp2.MsgClientPutDiskDir, + ('RequestStatus', fcp2.ConstRequestStatus.Success | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) @@ -1991,7 +1987,7 @@ def test_putDir_Failure(self): self.connectClient() - myKey = self.client.key.KSK('foo') + myKey = fcp2.KeyKSK('foo') myIdentifier = self.client.putDir( myKey, 'myDirectory' @@ -1999,7 +1995,7 @@ myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientPutDiskDir) + self.assertHasNextMessage(fcp2.MsgClientPutDiskDir) self.failUnless(myIdentifier in requestsAll) self.sendResponseMessage( @@ -2010,10 +2006,10 @@ self.assertHasNextEvent( self.client.events.RequestFailed, - consts.Message.ClientPutDiskDir, - ('RequestStatus', consts.RequestStatus.Error | - consts.RequestStatus.RemovedFromQueue | - consts.RequestStatus.Completed + fcp2.MsgClientPutDiskDir, + ('RequestStatus', fcp2.ConstRequestStatus.Error | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) @@ -2029,7 +2025,7 @@ def test_putFile_Success(self): self.connectClient() - myKey = self.client.key.KSK('foo') + myKey = fcp2.KeyKSK('foo') myIdentifier = self.client.putFile( myKey, 'myFile.txt' @@ -2037,7 +2033,7 @@ myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientPut) + self.assertHasNextMessage(fcp2.MsgClientPut) self.failUnless(myIdentifier in requestsAll) self.sendResponseMessage( @@ -2048,10 +2044,10 @@ self.assertHasNextEvent( self.client.events.RequestCompleted, - consts.Message.ClientPut, - ('RequestStatus', consts.RequestStatus.Success | - consts.RequestStatus.RemovedFromQueue | - consts.RequestStatus.Completed + fcp2.MsgClientPut, + ('RequestStatus', fcp2.ConstRequestStatus.Success | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) @@ -2063,7 +2059,7 @@ def test_putFile_Failure(self): self.connectClient() - myKey = self.client.key.KSK('foo') + myKey = fcp2.KeyKSK('foo') myIdentifier = self.client.putFile( myKey, 'myFile.txt' @@ -2071,7 +2067,7 @@ myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientPut) + self.assertHasNextMessage(fcp2.MsgClientPut) self.failUnless(myIdentifier in requestsAll) self.sendResponseMessage( @@ -2082,10 +2078,10 @@ self.assertHasNextEvent( self.client.events.RequestFailed, - consts.Message.ClientPut, - ('RequestStatus', consts.RequestStatus.Error | - consts.RequestStatus.RemovedFromQueue | - consts.RequestStatus.Completed + fcp2.MsgClientPut, + ('RequestStatus', fcp2.ConstRequestStatus.Error | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) @@ -2102,29 +2098,29 @@ items = [ { - 'RequestType': consts.RequestType.PutData, + 'RequestType': fcp2.ConstRequestType.PutData, 'Data': '12345', 'Name': 'myItem0', }, { - 'RequestType': consts.RequestType.PutFile, + 'RequestType': fcp2.ConstRequestType.PutFile, 'Filename': 'myFile.txt', 'Name': 'myItem1', }, { - 'RequestType': consts.RequestType.PutRedirect, + 'RequestType': fcp2.ConstRequestType.PutRedirect, 'TargetURI': 'CHK@123456789', 'Name': 'myItem2', }, { - 'RequestType': consts.RequestType.PutData, + 'RequestType': fcp2.ConstRequestType.PutData, 'Data': '67890', 'Name': 'myItem3', }, ] # request a arbitrary file - myKey = self.client.key.KSK('foo') + myKey = fcp2.KeyKSK('foo') myIdentifier = self.client.putMultiple( myKey, items @@ -2133,7 +2129,7 @@ requestsAll = self.client.getRequests() msg = self.assertHasNextMessage( - consts.Message.ClientPutComplexDir, + fcp2.MsgClientPutComplexDir, ('Files.0.Name', 'myItem0'), ('Files.0.UploadFrom', 'direct'), ('Files.0.DataLength', 5), @@ -2166,10 +2162,10 @@ self.assertHasNextEvent( self.client.events.RequestCompleted, - consts.Message.ClientPutComplexDir, - ('RequestStatus', consts.RequestStatus.Success | - consts.RequestStatus.RemovedFromQueue | - consts.RequestStatus.Completed + fcp2.MsgClientPutComplexDir, + ('RequestStatus', fcp2.ConstRequestStatus.Success | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) @@ -2184,12 +2180,12 @@ # upload directory is not allowed items = [ { - 'RequestType': consts.RequestType.PutDir, + 'RequestType': fcp2.ConstRequestType.PutDir, 'Data': '12345', 'Name': 'myItem0', }, ] - myKey = self.client.key.KSK('foo') + myKey = fcp2.KeyKSK('foo') self.assertRaises(ValueError, self.client.putMultiple, myKey, items) #TODO: how to test required params? @@ -2198,7 +2194,7 @@ # no request type specified items = [ { - #'RequestType': consts.RequestType.PutData, + #'RequestType': fcp2.ConstRequestType.PutData, 'Data': '12345', 'Name': 'myItem0', }, @@ -2208,7 +2204,7 @@ # param missing (we enforce all required parameters) items = [ { - 'RequestType': consts.RequestType.PutData, + 'RequestType': fcp2.ConstRequestType.PutData, #'Data': '12345', #'Name': 'myItem0', }, @@ -2225,8 +2221,8 @@ self.connectClient() # request a arbitrary file - myRedirect = self.client.key.KSK('foo') - myKey = self.client.key.key('CHK@' + self.client.key.DummyKeyData) + myRedirect = fcp2.KeyKSK('foo') + myKey = fcp2.Key('CHK@' + DummyKeyData) myIdentifier = self.client.putRedirect( myRedirect, myKey, @@ -2234,7 +2230,7 @@ myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientPut) + self.assertHasNextMessage(fcp2.MsgClientPut) self.failUnless(myIdentifier in requestsAll) self.sendResponseMessage( @@ -2245,10 +2241,10 @@ self.assertHasNextEvent( self.client.events.RequestCompleted, - consts.Message.ClientPut, - ('RequestStatus', consts.RequestStatus.Success | - consts.RequestStatus.RemovedFromQueue | - consts.RequestStatus.Completed + fcp2.MsgClientPut, + ('RequestStatus', fcp2.ConstRequestStatus.Success | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) @@ -2261,8 +2257,8 @@ self.connectClient() # request a arbitrary file - myRedirect = self.client.key.KSK('foo') - myKey = self.client.key.key('CHK@' + self.client.key.DummyKeyData) + myRedirect = fcp2.KeyKSK('foo') + myKey = fcp2.Key('CHK@' + DummyKeyData) myIdentifier = self.client.putRedirect( myRedirect, myKey, @@ -2270,7 +2266,7 @@ myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientPut) + self.assertHasNextMessage(fcp2.MsgClientPut) self.failUnless(myIdentifier in requestsAll) self.sendResponseMessage( @@ -2281,10 +2277,10 @@ self.assertHasNextEvent( self.client.events.RequestFailed, - consts.Message.ClientPut, - ('RequestStatus', consts.RequestStatus.Error | - consts.RequestStatus.RemovedFromQueue | - consts.RequestStatus.Completed + fcp2.MsgClientPut, + ('RequestStatus', fcp2.ConstRequestStatus.Error | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) @@ -2302,18 +2298,18 @@ # request a arbitrary file - myKey = self.client.key.key('KSK@foo') + myKey = fcp2.Key('KSK@foo') myIdentifier = self.client.getFile( myKey, 'arbitryry.txt', persistentUserData='foo', - priorityClass=consts.Priority.Medium, - persistence=consts.Persistence.Reboot, + priorityClass=fcp2.ConstPriority.Medium, + persistence=fcp2.ConstPersistence.Reboot, ) myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientGet) + self.assertHasNextMessage(fcp2.MsgClientGet) # respond to the file request self.sendResponseMessage( @@ -2321,12 +2317,12 @@ Started='false', **myRequest.params ) - #self.assertNextMessage(consts.Message.ClientGet) + #self.assertNextMessage(fcp2.MsgClientGet) # test modify persistent user data - self.client.modifyRequest(myIdentifier, persistentUserData='bar', priorityClass=consts.Priority.High) - msg = self.assertHasNextMessage(consts.Message.ModifyPersistentRequest) + self.client.modifyRequest(myIdentifier, persistentUserData='bar', priorityClass=fcp2.ConstPriority.High) + msg = self.assertHasNextMessage(fcp2.MsgModifyPersistentRequest) # respond to the file request self.sendResponseMessage( @@ -2335,10 +2331,10 @@ ) self.assertHasNextEvent(self.client.events.RequestModified) - self.failUnless(consts.RequestModified.PersistentUserData in myRequest['Modified']) - self.failUnless(consts.RequestModified.PriorityClass in myRequest['Modified']) + self.failUnless(fcp2.ConstRequestModified.PersistentUserData in myRequest['Modified']) + self.failUnless(fcp2.ConstRequestModified.PriorityClass in myRequest['Modified']) self.assertEqual('bar', myRequest['PersistentUserData']) - self.assertEqual(consts.Priority.High, myRequest['PriorityClass']) + self.assertEqual(fcp2.ConstPriority.High, myRequest['PriorityClass']) self.assertHasNextEvent(None) self.assertHasNextMessage(None) @@ -2351,17 +2347,17 @@ self.connectClient() # request a arbitrary file - myKey = self.client.key.key('KSK@foo') + myKey = fcp2.Key('KSK@foo') myIdentifier = self.client.getFile( myKey, 'arbitryry.txt', persistentUserData='foo', - priorityClass=consts.Priority.Medium, + priorityClass=fcp2.ConstPriority.Medium, ) myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientGet) + self.assertHasNextMessage(fcp2.MsgClientGet) # respond to the file request self.sendResponseMessage( @@ -2371,12 +2367,12 @@ ) # test modify persistent user data - self.client.modifyRequest(myIdentifier, persistentUserData='bar', priorityClass=consts.Priority.High) + self.client.modifyRequest(myIdentifier, persistentUserData='bar', priorityClass=fcp2.ConstPriority.High) # no way to modify priority in Fcp. The client ignores all attempts to do so currently # no message is send,instead the event is triggered emidiately - #msg = self.assertHasNextMessage(consts.Message.ModifyPersistentRequest) + #msg = self.assertHasNextMessage(fcp2.MsgModifyPersistentRequest) # respond to the file request #self.sendResponseMessage( # 'PersistentRequestModified', @@ -2385,10 +2381,10 @@ self.assertHasNextEvent(self.client.events.RequestModified) - self.failUnless(consts.RequestModified.PersistentUserData in myRequest['Modified']) - #self.failUnless(consts.RequestModified.PriorityClass in myRequest['Modified']) + self.failUnless(fcp2.ConstRequestModified.PersistentUserData in myRequest['Modified']) + #self.failUnless(fcp2.RequestModified.PriorityClass in myRequest['Modified']) self.assertEqual('bar', myRequest['PersistentUserData']) - #self.assertEqual(consts.Priority.High, myRequest['PriorityClass']) + #self.assertEqual(fcp2.Priority.High, myRequest['PriorityClass']) self.assertHasNextEvent(None) self.assertHasNextMessage(None) @@ -2404,7 +2400,7 @@ self.connectClient() # request a file - myKey = self.client.key.key('KSK@foo') + myKey = fcp2.Key('KSK@foo') myIdentifier = self.client.getFile( myKey, 'arbitrary.txt' @@ -2412,7 +2408,7 @@ myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientGet) + self.assertHasNextMessage(fcp2.MsgClientGet) # respond to the file request self.sendResponseMessage( 'PersistentGet', @@ -2426,11 +2422,11 @@ # now cancel request self.client.removeRequest(myIdentifier) - self.assertHasNextMessage('RemoveRequest') + self.assertHasNextMessage(fcp2.MsgRemoveRequest) # of our request should be marked as removed - self.assertEqual(myRequest['RequestStatus'], consts.RequestStatus.Removed | - consts.RequestStatus.Completed + self.assertEqual(myRequest['RequestStatus'], fcp2.ConstRequestStatus.Removed | + fcp2.ConstRequestStatus.Completed ) # respond with a Getfailed @@ -2444,10 +2440,10 @@ # 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 + fcp2.MsgClientGet, + ('RequestStatus', fcp2.ConstRequestStatus.Removed | + fcp2.ConstRequestStatus.RemovedFromQueue | + fcp2.ConstRequestStatus.Completed ), ) self.failIf(myIdentifier in requestsAll) @@ -2468,7 +2464,7 @@ # throw an invalid PersistentRequest at the client myIdentifier = '123456789' self.assertRaises( - consts.MessageParseError, + fcp2.ErrorMessageParse, self.sendResponseMessage, 'PersistentGet', Identifier=myIdentifier, @@ -2489,14 +2485,14 @@ #NOTE: the client will recognize it as unknown request and query to remove it #self.assertHasNextMessage(None) - self.assertHasNextMessage(consts.Message.RemoveRequest) + self.assertHasNextMessage(fcp2.MsgRemoveRequest) 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') + myKey = fcp2.Key('KSK@foo') myIdentifier = self.client.getFile( myKey, 'arbitryry.txt' @@ -2504,14 +2500,14 @@ myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() - self.assertHasNextMessage(consts.Message.ClientGet) + self.assertHasNextMessage(fcp2.MsgClientGet) self.client.removeRequest(myIdentifier) self.sendResponseMessage( 'PersistentRequestRemoved', Identifier=myIdentifier, ) - self.assertHasNextMessage(self.client.message.RemoveRequest.name) + self.assertHasNextMessage(fcp2.MsgRemoveRequest) self.assertHasNextEvent(self.client.events.RequestRemoved) # throw a PersistentGet at the client with the identifier we hacked @@ -2529,9 +2525,9 @@ # check if the client restored the request msg = self.assertHasNextEvent( self.client.events.RequestRestored, - consts.Message.ClientGet, + fcp2.MsgClientGet, ('Identifier', myIdentifier), - ('RequestStatus', consts.RequestStatus.Restored), # no RequestStatus.Pending flag should be set here + ('RequestStatus', fcp2.ConstRequestStatus.Restored), # no RequestStatus.Pending flag should be set here ) self.failUnless(myIdentifier in requestsAll) @@ -2553,7 +2549,7 @@ self.connectClient() # request a file - myKey = self.client.key.key('KSK@foo') + myKey = fcp2.Key('KSK@foo') myIdentifier = self.client.getFile( myKey, os.path.join(DIR, 'DDATest.txt') @@ -2562,7 +2558,7 @@ requestsAll = self.client.getRequests() # client schould send a ClientGet - self.assertHasNextMessage(consts.Message.ClientGet) + self.assertHasNextMessage(fcp2.MsgClientGet) # respond with a ProtocolError self.sendResponseMessage( @@ -2576,14 +2572,14 @@ # client should respond with a TestDDARequest self.assertHasNextMessage( - consts.Message.TestDDARequest, + fcp2.MsgTestDDARequest, ('Directory', DIR), ('WantWriteDirectory', True) ) #msg = self.nextMessage() #self.failIf(msg is None) - #self.assertEqual(msg.name, consts.Message.TestDDARequest) + #self.assertEqual(msg.name, fcp2.MsgTestDDARequest) ##self.assertEqual(msg['Directory'], DIR) #self.failIf(not msg['WantWriteDirectory']) @@ -2601,7 +2597,7 @@ # client should respond with a TestDDAResponse self.assertHasNextMessage( - consts.Message.TestDDAResponse, + fcp2.MsgTestDDAResponse, ('Directory', DIR) ) @@ -2620,7 +2616,7 @@ self.failIf(os.path.isfile(fpath)) # client sahould send a new ClientGet - msg = self.assertHasNextMessage(consts.Message.ClientGet) + msg = self.assertHasNextMessage(fcp2.MsgClientGet) # no events should have been triggered upo to now self.assertHasNextEvent(None) @@ -2655,7 +2651,7 @@ self.connectClient() # request a file - myKey = self.client.key.key('KSK@foo') + myKey = fcp2.Key('KSK@foo') myIdentifier = self.client.getFile( myKey, os.path.join(DIR, 'test.txt') @@ -2664,7 +2660,7 @@ requestsAll = self.client.getRequests() # client schould send a ClientGet - self.assertHasNextMessage(consts.Message.ClientGet) + self.assertHasNextMessage(fcp2.MsgClientGet) # respond with an IdentifierCollision @@ -2674,16 +2670,16 @@ ) # client schould send a new ClientGet - self.assertHasNextMessage(consts.Message.ClientGet) + self.assertHasNextMessage(fcp2.MsgClientGet) # check if RequestModified event has been triggered msg = self.assertHasNextEvent( self.client.events.RequestModified, - consts.Message.ClientGet, + fcp2.MsgClientGet, ) - self.failUnless(consts.RequestModified.Identifier in msg['Modified']) - oldIdentifier = msg['Modified'][consts.RequestModified.Identifier] + self.failUnless(fcp2.ConstRequestModified.Identifier in msg['Modified']) + oldIdentifier = msg['Modified'][fcp2.ConstRequestModified.Identifier] newIdentifier = msg['Identifier'] self.assertEqual(oldIdentifier, myIdentifier) self.assertNotEqual(newIdentifier, myIdentifier) @@ -2703,17 +2699,17 @@ open(fpath, 'wb').close() self.tmpfiles.append(fpath) - myKey = self.client.key.key('KSK@foo') + myKey = fcp2.Key('KSK@foo') myIdentifier = self.client.getFile( myKey, fpath, - filenameCollision=consts.FilenameCollision.HandleRename, + filenameCollision=fcp2.ConstFilenameCollision.HandleRename, ) myRequest = self.client.getRequest(myIdentifier) requestsAll = self.client.getRequests() # client schould send a ClientGet - self.assertHasNextMessage(consts.Message.ClientGet) + self.assertHasNextMessage(fcp2.MsgClientGet) # now respond with a ProtocolError self.sendResponseMessage( @@ -2726,23 +2722,23 @@ ) # client schould send a new ClientGet with a different filename - self.assertHasNextMessage(consts.Message.ClientGet) + self.assertHasNextMessage(fcp2.MsgClientGet) msg = self.assertHasNextEvent( self.client.events.RequestModified, - consts.Message.ClientGet + fcp2.MsgClientGet ) - self.failUnless(consts.RequestModified.File... [truncated message content] |