download_images_buildid_test.py revision 6ffbb92f0913f990b6a5c7ef706aee9bfb4faa9e
1#!/usr/bin/python 2# 3# Copyright 2014 Google Inc. All Rights Reserved 4 5import optparse 6import sys 7 8import download_images 9 10 11#On May 1, 2014: 12#latest : lumpy-release/R34-5500.132.0 13#latest-beta : lumpy-release/R35-5712.43.0 14#latest-official: lumpy-release/R36-5814.0.0 15#latest-dev : lumpy-release/R36-5814.0.0 16#latest-canary : lumpy-release/R36-5814.0.0 17 18 19class ImageDownloaderBuildIDTest(object): 20 21 def __init__(self): 22 parser = optparse.OptionParser() 23 parser.add_option("-c", "--chromeos_root", dest="chromeos_root", 24 help="Directory containing ChromeOS root.") 25 26 options = parser.parse_args(sys.argv[1:])[0] 27 if options.chromeos_root is None: 28 self._usage(parser, "--chromeos_root must be set") 29 self.chromeos_root = options.chromeos_root 30 self.tests_passed = 0 31 self.tests_run = 0 32 self.tests_failed = 0 33 34 def _usage(self, parser, message): 35 print "ERROR: " + message 36 parser.print_help() 37 sys.exit(0) 38 39 def print_test_status(self): 40 print "----------------------------------------\n" 41 print "Tests attempted: %d" % self.tests_run 42 print "Tests passed: %d" % self.tests_passed 43 print "Tests failed: %d" % self.tests_failed 44 print "\n----------------------------------------" 45 46 def assert_failure (self, msg): 47 print "Assert failure: %s" % msg 48 self.print_test_status() 49 sys.exit(1) 50 51 52 def assertIsNotNone(self, arg, arg_name): 53 if arg == None: 54 self.tests_failed = self.tests_failed + 1 55 self.assert_failure ("%s is not None" % arg_name) 56 57 58 def assertNotEqual(self, arg1, arg2, arg1_name, arg2_name): 59 if arg1 == arg2: 60 self.tests_failed = self.tests_failed + 1 61 self.assert_failure ("%s is not NotEqual to %s" % (arg1_name, arg2_name)) 62 63 def assertEqual(self, arg1, arg2, arg1_name, arg2_name): 64 if arg1 != arg2: 65 self.tests_failed = self.tests_failed + 1 66 self.assert_failure ("%s is not Equal to %s" % (arg1_name, arg2_name)) 67 68 69 def test_one_id (self, downloader, test_id, result_string, exact_match): 70 print "Translating '%s'" % test_id 71 self.tests_run = self.tests_run + 1 72 73 result = downloader._GetBuildID(self.chromeos_root, test_id) 74 # Verify that we got a build id back. 75 self.assertIsNotNone(result, "result") 76 77 # Verify that the result either contains or exactly matches the 78 # result_string, depending on the exact_match argument. 79 if exact_match: 80 self.assertEqual (result, result_string, "result", result_string) 81 else: 82 self.assertNotEqual (result.find(result_string), -1, "result.find", "-1") 83 self.tests_passed = self.tests_passed + 1 84 85 def test_get_build_id(self): 86 """ 87 Test that the actual translating of xbuddy names is working properly. 88 """ 89 downloader = download_images.ImageDownloader(log_level="quiet") 90 91 self.test_one_id (downloader, "remote/lumpy/latest-dev", "lumpy-release/R", 92 False) 93 self.test_one_id (downloader, 94 "remote/trybot-lumpy-release-afdo-use/R35-5672.0.0-b86", 95 "trybot-lumpy-release-afdo-use/R35-5672.0.0-b86", True) 96 self.test_one_id (downloader, "remote/lumpy-release/R35-5672.0.0", 97 "lumpy-release/R35-5672.0.0", True) 98 self.test_one_id (downloader, "remote/lumpy/latest-dev", "lumpy-release/R", 99 False) 100 self.test_one_id (downloader, "remote/lumpy/latest-official", 101 "lumpy-release/R", False) 102 self.test_one_id (downloader, "remote/lumpy/latest-beta", "lumpy-release/R", 103 False) 104 105 self.print_test_status() 106 107if __name__ == '__main__': 108 tester = ImageDownloaderBuildIDTest() 109 tester.test_get_build_id() 110