B cT @sjdZdZddlZddlZddlmZGdddeZdddZifd d Z e d krfd d Z ej dddS)zgSelf tests These tests should perform quickly and can ideally be used every time an application runs. z$Id$N)StringIOc@seZdZddZdS) SelfTestErrorcCst|||||_||_dS)N) Exception__init__messageresult)selfrrr K/opt/alt/python37/lib64/python3.7/site-packages/Crypto/SelfTest/__init__.pyr&szSelfTestError.__init__N)__name__ __module__ __qualname__rr r r r r%src Ks|dkr i}t}|dkr:|dkr.t|d}||n$|dkrV||j|dntd|dkrpt|d<tjfd|i|}||}|s|dkrt j | t d||S)a6Execute 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) N)configz5'module' and 'tests' arguments are mutually exclusivestream verbosityzSelf-test failed)unittest TestSuite get_testsZaddTests ValueErrorrZTextTestRunnerrunZ wasSuccessfulsysstderrwritegetvaluer) modulerrtestsrkwargssuiteZrunnerrr r r r+s&      rc Csg}ddlm}||j|d7}ddlm}||j|d7}ddlm}||j|d7}ddlm}||j|d7}ddlm}||j|d7}ddlm}||j|d7}dd lm}||j|d7}|S) Nr)Cipher)r)Hash)Protocol) PublicKey)Random)Util) Signature) ZCrypto.SelfTestrrrr r!r"r#r$) rrrrr r!r"r#r$r r r rMs        r__main__cCs ttS)N)rrrr r r r Yr&r)Z defaultTest)NrNNN) __doc__Z __revision__rriorrrrrr rmainr r r r s  "