diff options
Diffstat (limited to 'src/engine/SCons/Sig/MD5Tests.py')
-rw-r--r-- | src/engine/SCons/Sig/MD5Tests.py | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/src/engine/SCons/Sig/MD5Tests.py b/src/engine/SCons/Sig/MD5Tests.py deleted file mode 100644 index ba18264..0000000 --- a/src/engine/SCons/Sig/MD5Tests.py +++ /dev/null @@ -1,113 +0,0 @@ -# -# __COPYRIGHT__ -# -# 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. -# - -__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" - -import sys -import unittest -import string - -from SCons.Sig.MD5 import current, collect, signature, to_string, from_string - - - - -class my_obj: - """A dummy object class that satisfies the interface - requirements of the MD5 class. - """ - - def __init__(self, value = ""): - self.value = value - - def get_signature(self): - if not hasattr(self, "sig"): - self.sig = signature(self) - return self.sig - - def get_contents(self): - return self.value - - - -class MD5TestCase(unittest.TestCase): - - def test_current(self): - """Test deciding if an object is up-to-date - - Simple comparison of different "signature" values. - """ - obj = my_obj('111') - assert not current(obj.get_signature(), signature(my_obj('110'))) - assert current(obj.get_signature(), signature(my_obj('111'))) - assert not current(obj.get_signature(), signature(my_obj('112'))) - - def test_collect(self): - """Test collecting a list of signatures into a new signature value - """ - s = map(signature, map(my_obj, ('111', '222', '333'))) - - assert '698d51a19d8a121ce581499d7b701668' == collect(s[0:1]) - assert '8980c988edc2c78cc43ccb718c06efd5' == collect(s[0:2]) - assert '53fd88c84ff8a285eb6e0a687e55b8c7' == collect(s) - - def test_signature(self): - """Test generating a signature""" - o1 = my_obj(value = '111') - s = signature(o1) - assert '698d51a19d8a121ce581499d7b701668' == s, s - - o2 = my_obj(value = 222) - s = signature(o2) - assert 'bcbe3365e6ac95ea2c0343a2395834dd' == s, s - - try: - signature('string') - except AttributeError, e: - assert string.find(str(e), "unable to fetch contents") == 0, str(e) - else: - raise AttributeError, "unexpected get_contents() attribute" - - # Make sure we don't eat AttributeErrors raised internally - # by the get_contents() method (or anything it calls). - caught = None - try: - class xxx: - def get_contents(self): - raise AttributeError, "internal AttributeError" - signature(xxx()) - except AttributeError, e: - assert str(e) == "internal AttributeError", e - caught = 1 - assert caught, "did not catch expected AttributeError" - - def test_to_string(self): - assert '698d51a19d8a121ce581499d7b701668' == to_string('698d51a19d8a121ce581499d7b701668') - - def test_from_string(self): - assert '698d51a19d8a121ce581499d7b701668' == from_string('698d51a19d8a121ce581499d7b701668') - -if __name__ == "__main__": - suite = unittest.makeSuite(MD5TestCase, 'test_') - if not unittest.TextTestRunner().run(suite).wasSuccessful(): - sys.exit(1) |