blob: bfa61006e09a56ef1efaa49bb4f8668f6ca84b75 [file] [log] [blame]
#!/usr/bin/python
#
# Copyright 2014 Google Inc. All Rights Reserved
import optparse
import sys
import download_images
#On May 1, 2014:
#latest : lumpy-release/R34-5500.132.0
#latest-beta : lumpy-release/R35-5712.43.0
#latest-official: lumpy-release/R36-5814.0.0
#latest-dev : lumpy-release/R36-5814.0.0
#latest-canary : lumpy-release/R36-5814.0.0
class ImageDownloaderBuildIDTest(object):
def __init__(self):
parser = optparse.OptionParser()
parser.add_option("-c", "--chromeos_root", dest="chromeos_root",
help="Directory containing ChromeOS root.")
options = parser.parse_args(sys.argv[1:])[0]
if options.chromeos_root is None:
self._usage(parser, "--chromeos_root must be set")
self.chromeos_root = options.chromeos_root
self.tests_passed = 0
self.tests_run = 0
self.tests_failed = 0
def _usage(self, parser, message):
print "ERROR: " + message
parser.print_help()
sys.exit(0)
def print_test_status(self):
print "----------------------------------------\n"
print "Tests attempted: %d" % self.tests_run
print "Tests passed: %d" % self.tests_passed
print "Tests failed: %d" % self.tests_failed
print "\n----------------------------------------"
def assert_failure (self, msg):
print "Assert failure: %s" % msg
self.print_test_status()
sys.exit(1)
def assertIsNotNone(self, arg, arg_name):
if arg == None:
self.tests_failed = self.tests_failed + 1
self.assert_failure ("%s is not None" % arg_name)
def assertNotEqual(self, arg1, arg2, arg1_name, arg2_name):
if arg1 == arg2:
self.tests_failed = self.tests_failed + 1
self.assert_failure ("%s is not NotEqual to %s" % (arg1_name, arg2_name))
def assertEqual(self, arg1, arg2, arg1_name, arg2_name):
if arg1 != arg2:
self.tests_failed = self.tests_failed + 1
self.assert_failure ("%s is not Equal to %s" % (arg1_name, arg2_name))
def test_one_id (self, downloader, test_id, result_string, exact_match):
print "Translating '%s'" % test_id
self.tests_run = self.tests_run + 1
result = downloader._GetBuildID(self.chromeos_root, test_id)
# Verify that we got a build id back.
self.assertIsNotNone(result, "result")
# Verify that the result either contains or exactly matches the
# result_string, depending on the exact_match argument.
if exact_match:
self.assertEqual (result, result_string, "result", result_string)
else:
self.assertNotEqual (result.find(result_string), -1, "result.find", "-1")
self.tests_passed = self.tests_passed + 1
def test_get_build_id(self):
"""
Test that the actual translating of xbuddy names is working properly.
"""
downloader = download_images.ImageDownloader(log_level="quiet")
self.test_one_id (downloader, "remote/lumpy/latest-dev", "lumpy-release/R",
False)
self.test_one_id (downloader,
"remote/trybot-lumpy-release-afdo-use/R35-5672.0.0-b86",
"trybot-lumpy-release-afdo-use/R35-5672.0.0-b86", True)
self.test_one_id (downloader, "remote/lumpy-release/R35-5672.0.0",
"lumpy-release/R35-5672.0.0", True)
self.test_one_id (downloader, "remote/lumpy/latest-dev", "lumpy-release/R",
False)
self.test_one_id (downloader, "remote/lumpy/latest-official",
"lumpy-release/R", False)
self.test_one_id (downloader, "remote/lumpy/latest-beta", "lumpy-release/R",
False)
self.print_test_status()
if __name__ == '__main__':
tester = ImageDownloaderBuildIDTest()
tester.test_get_build_id()