blob: 208ffa4a379235ad6d54122cadc17967a9dfda5d [file] [log] [blame]
# Copyright 2017 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Test cr_util module"""
import os
import unittest
from bisect_kit import cr_util
class TestCrUtil(unittest.TestCase):
"""Test cr_util functions."""
def test_is_chrome_version(self):
assert cr_util.is_chrome_version('59.0.3065.0')
assert not cr_util.is_chrome_version('59.0.3065')
assert not cr_util.is_chrome_version('59.0.3065.0.0')
def test_is_version_lesseq(self):
assert cr_util.is_version_lesseq('75.0.3731.0', '75.0.3731.0')
assert cr_util.is_version_lesseq('75.0.3731.0', '75.0.3732.0')
assert not cr_util.is_version_lesseq('75.0.3732.0', '75.0.3731.0')
assert cr_util.is_version_lesseq('74.0.3726.0', '75.0.3731.0')
def test_is_direct_relative_version(self):
assert cr_util.is_direct_relative_version('74.0.3726.0', '75.0.3731.0')
assert cr_util.is_direct_relative_version('75.0.3731.0', '74.0.3726.0')
assert cr_util.is_direct_relative_version('73.0.3683.0', '75.0.3731.0')
assert not cr_util.is_direct_relative_version(
'73.0.3683.1', '75.0.3731.0'
)
assert not cr_util.is_direct_relative_version(
'75.0.3731.0', '73.0.3683.1'
)
def test_extract_branch_from_version(self):
self.assertEqual(
cr_util.extract_branch_from_version('59.0.3064.0'), '3064'
)
def test_extract_milestone_from_version(self):
self.assertEqual(
cr_util.extract_milestone_from_version('59.0.3064.0'), '59'
)
def test_get_ancestors(self):
# Disabling protected member access cros lint error
# pylint: disable=protected-access
chrome_version_list = [
'100.0.1.0',
'100.0.1.1',
'100.0.2.0',
'100.0.2.1',
'100.0.3.0',
'100.0.3.1',
'100.0.3.2',
]
self.assertEqual(
cr_util._get_ancestors('100.0.3.1', chrome_version_list),
['100.0.1.0', '100.0.2.0', '100.0.3.0', '100.0.3.1'],
)
self.assertEqual(
cr_util._get_ancestors('100.0.2.1', chrome_version_list),
['100.0.1.0', '100.0.2.0', '100.0.2.1'],
)
def test_get_lca(self):
chrome_version_list = [
'100.0.1.0',
'100.0.1.1',
'100.0.2.0',
'100.0.2.1',
'100.0.3.0',
'100.0.3.1',
'100.0.3.2',
]
self.assertEqual(
cr_util.get_lca('100.0.3.1', '100.0.1.1', chrome_version_list),
'100.0.1.0',
)
self.assertEqual(
cr_util.get_lca('100.0.1.1', '100.0.3.1', chrome_version_list),
'100.0.1.0',
)
self.assertEqual(
cr_util.get_lca('100.0.1.1', '100.0.1.1', chrome_version_list),
'100.0.1.1',
)
self.assertEqual(
cr_util.get_lca('100.0.2.0', '100.0.3.1', chrome_version_list),
'100.0.2.0',
)
def test_get_RBE_environment_variables(self):
os.environ['SKYLAB_CLOUD_SERVICE_ACCOUNT_JSON'] = 'bisect_runner_path'
# pylint: disable=protected-access
env = cr_util.get_RBE_environment_variables()
self.assertTrue('RBE_credential_file' in env)
self.assertEqual(env['RBE_credential_file'], 'bisect_runner_path')
self.assertTrue('RBE_use_application_default_credentials' in env)
self.assertEqual(env['RBE_use_application_default_credentials'], 'true')
self.assertTrue('RBE_use_gce_credentials' in env)
self.assertEqual(env['RBE_use_gce_credentials'], 'false')
self.assertTrue('RBE_automatic_auth' in env)
self.assertEqual(env['RBE_automatic_auth'], 'false')
if __name__ == '__main__':
unittest.main()