Index: third_party/google-endpoints/Crypto/SelfTest/__init__.py |
diff --git a/third_party/google-endpoints/Crypto/SelfTest/__init__.py b/third_party/google-endpoints/Crypto/SelfTest/__init__.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..40b39693af8ab9abc54b275b1b689d5a683c0966 |
--- /dev/null |
+++ b/third_party/google-endpoints/Crypto/SelfTest/__init__.py |
@@ -0,0 +1,92 @@ |
+# -*- coding: utf-8 -*- |
+# |
+# SelfTest/__init__.py: Self-test for PyCrypto |
+# |
+# Written in 2008 by Dwayne C. Litzenberger <dlitz@dlitz.net> |
+# |
+# =================================================================== |
+# The contents of this file are dedicated to the public domain. To |
+# the extent that dedication to the public domain is not available, |
+# everyone is granted a worldwide, perpetual, royalty-free, |
+# non-exclusive license to exercise all rights associated with the |
+# contents of this file for any purpose whatsoever. |
+# No rights are reserved. |
+# |
+# 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. |
+# =================================================================== |
+ |
+"""Self tests |
+ |
+These tests should perform quickly and can ideally be used every time an |
+application runs. |
+""" |
+ |
+__revision__ = "$Id$" |
+ |
+import sys |
+import unittest |
+from StringIO import StringIO |
+ |
+class SelfTestError(Exception): |
+ def __init__(self, message, result): |
+ Exception.__init__(self, message, result) |
+ self.message = message |
+ self.result = result |
+ |
+def run(module=None, verbosity=0, stream=None, tests=None, config=None, **kwargs): |
+ """Execute self-tests. |
+ |
+ This raises SelfTestError if any test is unsuccessful. |
+ |
+ You may optionally pass in a sub-module of SelfTest if you only want to |
+ perform some of the tests. For example, the following would test only the |
+ hash modules: |
+ |
+ Crypto.SelfTest.run(Crypto.SelfTest.Hash) |
+ |
+ """ |
+ if config is None: |
+ config = {} |
+ suite = unittest.TestSuite() |
+ if module is None: |
+ if tests is None: |
+ tests = get_tests(config=config) |
+ suite.addTests(tests) |
+ else: |
+ if tests is None: |
+ suite.addTests(module.get_tests(config=config)) |
+ else: |
+ raise ValueError("'module' and 'tests' arguments are mutually exclusive") |
+ if stream is None: |
+ kwargs['stream'] = StringIO() |
+ runner = unittest.TextTestRunner(verbosity=verbosity, **kwargs) |
+ result = runner.run(suite) |
+ if not result.wasSuccessful(): |
+ if stream is None: |
+ sys.stderr.write(stream.getvalue()) |
+ raise SelfTestError("Self-test failed", result) |
+ return result |
+ |
+def get_tests(config={}): |
+ tests = [] |
+ from Crypto.SelfTest import Cipher; tests += Cipher.get_tests(config=config) |
+ from Crypto.SelfTest import Hash; tests += Hash.get_tests(config=config) |
+ from Crypto.SelfTest import Protocol; tests += Protocol.get_tests(config=config) |
+ from Crypto.SelfTest import PublicKey; tests += PublicKey.get_tests(config=config) |
+ from Crypto.SelfTest import Random; tests += Random.get_tests(config=config) |
+ from Crypto.SelfTest import Util; tests += Util.get_tests(config=config) |
+ from Crypto.SelfTest import Signature; tests += Signature.get_tests(config=config) |
+ return tests |
+ |
+if __name__ == '__main__': |
+ suite = lambda: unittest.TestSuite(get_tests()) |
+ unittest.main(defaultTest='suite') |
+ |
+# vim:set ts=4 sw=4 sts=4 expandtab: |