115 lines
3.9 KiB
Python
Executable File
115 lines
3.9 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
# Copyright 2014 The Chromium OS Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
"""Test translation of xbuddy names."""
|
|
|
|
from __future__ import print_function
|
|
|
|
import argparse
|
|
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):
|
|
"""Test translation of xbuddy names."""
|
|
|
|
def __init__(self):
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument(
|
|
'-c',
|
|
'--chromeos_root',
|
|
dest='chromeos_root',
|
|
help='Directory containing ChromeOS root.')
|
|
|
|
options = parser.parse_known_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 is 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()
|