| #!/usr/bin/env python |
| # Copyright (c) 2006-2011 Mitch Garnaat http://garnaat.org/ |
| # |
| # 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, dis- |
| # tribute, sublicense, and/or sell copies of the Software, and to permit |
| # persons to whom the Software is furnished to do so, subject to the fol- |
| # lowing 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 MERCHANTABIL- |
| # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT |
| # SHALL THE AUTHOR 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. |
| |
| """ |
| do the unit tests! |
| """ |
| |
| import logging |
| import sys |
| import unittest |
| import getopt |
| |
| from sqs.test_connection import SQSConnectionTest |
| from s3.test_connection import S3ConnectionTest |
| from s3.test_versioning import S3VersionTest |
| from s3.test_encryption import S3EncryptionTest |
| from s3.test_gsconnection import GSConnectionTest |
| from s3.test_https_cert_validation import CertValidationTest |
| from ec2.test_connection import EC2ConnectionTest |
| from autoscale.test_connection import AutoscaleConnectionTest |
| from sdb.test_connection import SDBConnectionTest |
| from cloudfront.test_signed_urls import CloudfrontSignedUrlsTest |
| |
| def usage(): |
| print "test.py [-t testsuite] [-v verbosity]" |
| print " -t run specific testsuite (s3|ssl|s3ver|s3nover|gs|sqs|ec2|sdb|all)" |
| print " -v verbosity (0|1|2)" |
| |
| def main(): |
| try: |
| opts, args = getopt.getopt(sys.argv[1:], "ht:v:", |
| ["help", "testsuite", "verbosity"]) |
| except: |
| usage() |
| sys.exit(2) |
| testsuite = "all" |
| verbosity = 1 |
| for o, a in opts: |
| if o in ("-h", "--help"): |
| usage() |
| sys.exit() |
| if o in ("-t", "--testsuite"): |
| testsuite = a |
| if o in ("-v", "--verbosity"): |
| verbosity = int(a) |
| if len(args) != 0: |
| usage() |
| sys.exit() |
| try: |
| tests = suite(testsuite) |
| except ValueError: |
| usage() |
| sys.exit() |
| if verbosity > 1: |
| logging.basicConfig(level=logging.DEBUG) |
| unittest.TextTestRunner(verbosity=verbosity).run(tests) |
| |
| def suite(testsuite="all"): |
| tests = unittest.TestSuite() |
| if testsuite == "all": |
| tests.addTest(unittest.makeSuite(SQSConnectionTest)) |
| tests.addTest(unittest.makeSuite(S3ConnectionTest)) |
| tests.addTest(unittest.makeSuite(EC2ConnectionTest)) |
| tests.addTest(unittest.makeSuite(SDBConnectionTest)) |
| tests.addTest(unittest.makeSuite(AutoscaleConnectionTest)) |
| tests.addTest(unittest.makeSuite(CloudfrontSignedUrlsTest)) |
| elif testsuite == "s3": |
| tests.addTest(unittest.makeSuite(S3ConnectionTest)) |
| tests.addTest(unittest.makeSuite(S3VersionTest)) |
| tests.addTest(unittest.makeSuite(S3EncryptionTest)) |
| elif testsuite == "ssl": |
| tests.addTest(unittest.makeSuite(CertValidationTest)) |
| elif testsuite == "s3ver": |
| tests.addTest(unittest.makeSuite(S3VersionTest)) |
| elif testsuite == "s3nover": |
| tests.addTest(unittest.makeSuite(S3ConnectionTest)) |
| tests.addTest(unittest.makeSuite(S3EncryptionTest)) |
| elif testsuite == "gs": |
| tests.addTest(unittest.makeSuite(GSConnectionTest)) |
| elif testsuite == "sqs": |
| tests.addTest(unittest.makeSuite(SQSConnectionTest)) |
| elif testsuite == "ec2": |
| tests.addTest(unittest.makeSuite(EC2ConnectionTest)) |
| elif testsuite == "autoscale": |
| tests.addTest(unittest.makeSuite(AutoscaleConnectionTest)) |
| elif testsuite == "sdb": |
| tests.addTest(unittest.makeSuite(SDBConnectionTest)) |
| elif testsuite == "cloudfront": |
| tests.addTest(unittest.makeSuite(CloudfrontSignedUrlsTest)) |
| else: |
| raise ValueError("Invalid choice.") |
| return tests |
| |
| if __name__ == "__main__": |
| main() |