blob: e34091985ff8d804483da09dc95c23e27de184a7 [file] [log] [blame] [edit]
"""Tests for branch_utils."""
from __future__ import absolute_import
import os
import sys
import unittest
# Allow imports from cq/scripts folder
sys.path.insert(
0,
os.path.realpath(os.path.join(os.path.dirname(__file__), os.pardir)))
from helpers import branch_utils
class BranchUtilsTest(unittest.TestCase):
def testAnyBranchAlwaysLaterThanNone(self):
"""Test that the master branch is always the latest branch."""
self.assertTrue(
branch_utils.is_branch_equal_to_or_later_than('master', None))
self.assertTrue(
branch_utils.is_branch_equal_to_or_later_than('0.00', None))
self.assertTrue(
branch_utils.is_branch_equal_to_or_later_than('3.45', None))
def testMasterBranchAlwaysLatest(self):
"""Test that the master branch is always the latest branch."""
self.assertTrue(
branch_utils.is_branch_equal_to_or_later_than('master', 'master'))
self.assertTrue(
branch_utils.is_branch_equal_to_or_later_than('master', '2.34'))
self.assertTrue(
branch_utils.is_branch_equal_to_or_later_than('master', '0.00'))
self.assertFalse(
branch_utils.is_branch_equal_to_or_later_than('3.45', 'master'))
self.assertFalse(
branch_utils.is_branch_equal_to_or_later_than('0.00', 'master'))
def testNamedBranchLatest(self):
self.assertTrue(
branch_utils.is_branch_equal_to_or_later_than('pi-tv-dev', 'master'))
self.assertTrue(
branch_utils.is_branch_equal_to_or_later_than('pi-tv-dev', '2.34'))
self.assertTrue(
branch_utils.is_branch_equal_to_or_later_than('pi-tv-dev', '0.00'))
def testAndroidTvBranchLatest(self):
self.assertTrue(branch_utils.is_branch_equal_to_or_later_than(
'android12-5.4-boreal', None))
self.assertTrue(branch_utils.is_branch_equal_to_or_later_than(
'android12-5.4-boreal', 'master'))
self.assertTrue(branch_utils.is_branch_equal_to_or_later_than(
'android12-5.4-boreal', '2.34'))
# Android TV release branch.
self.assertTrue(branch_utils.is_branch_equal_to_or_later_than(
'android12-5.4-boreal-factory', None))
self.assertTrue(branch_utils.is_branch_equal_to_or_later_than(
'android12-5.4-boreal-factory', 'master'))
self.assertTrue(branch_utils.is_branch_equal_to_or_later_than(
'android12-5.4-boreal-factory', '2.34'))
def testBasicBranchComparison(self):
"""Test that branches compare properly to one another."""
self.assertFalse(
branch_utils.is_branch_equal_to_or_later_than('1.21', '2.34'))
self.assertTrue(
branch_utils.is_branch_equal_to_or_later_than('2.34', '1.21'))
self.assertFalse(
branch_utils.is_branch_equal_to_or_later_than('2.1', '11.1'))
self.assertTrue(
branch_utils.is_branch_equal_to_or_later_than('11.1', '2.1'))
self.assertTrue(
branch_utils.is_branch_equal_to_or_later_than('1.21', '1.21'))
def testBranchesWithSameMajorDifferentMinor(self):
"""Test that branches with the same major revision compare properly."""
self.assertFalse(
branch_utils.is_branch_equal_to_or_later_than('1.21', '1.22'))
self.assertTrue(
branch_utils.is_branch_equal_to_or_later_than('1.22', '1.21'))
self.assertTrue(
branch_utils.is_branch_equal_to_or_later_than('1.100', '1.23'))
self.assertFalse(
branch_utils.is_branch_equal_to_or_later_than('1.23', '1.100'))
def testBranchesWithSameMajorAndMinorDifferentVersion(self):
"""Test same major, minor, but with a different verison."""
self.assertFalse(
branch_utils.is_branch_equal_to_or_later_than('1.21', '1.21a'))
self.assertTrue(
branch_utils.is_branch_equal_to_or_later_than('1.21a', '1.21'))
self.assertFalse(
branch_utils.is_branch_equal_to_or_later_than('1.21a', '1.21b'))
self.assertTrue(
branch_utils.is_branch_equal_to_or_later_than('1.21b', '1.21a'))
self.assertFalse(
branch_utils.is_branch_equal_to_or_later_than('1.21d', '1.22'))
self.assertTrue(
branch_utils.is_branch_equal_to_or_later_than('1.22', '1.21d'))
self.assertTrue(
branch_utils.is_branch_equal_to_or_later_than('1.21d', '1.21d'))
def testReleaseBranches(self):
self.assertFalse(branch_utils.is_release_branch(None))
self.assertFalse(branch_utils.is_release_branch(''))
self.assertFalse(branch_utils.is_release_branch('master'))
self.assertFalse(branch_utils.is_release_branch('estelle'))
self.assertFalse(branch_utils.is_release_branch('android12-5.4-boreal'))
self.assertTrue(branch_utils.is_release_branch('1.36'))
self.assertTrue(branch_utils.is_release_branch('1.36a'))
self.assertTrue(branch_utils.is_release_branch('1.36_sdk_estelle'))
self.assertTrue(branch_utils.is_release_branch(
'android12-5.4-boreal-factory'))
self.assertTrue(branch_utils.is_release_branch(
'android12-5.4-boreal-ota12'))
def testMasterBranches(self):
self.assertFalse(branch_utils.is_master_branch(None))
self.assertFalse(branch_utils.is_master_branch(''))
self.assertFalse(branch_utils.is_master_branch('estelle'))
self.assertFalse(branch_utils.is_master_branch('1.36'))
self.assertFalse(branch_utils.is_master_branch('1.36a'))
self.assertFalse(branch_utils.is_master_branch('1.36_sdk_estelle'))
self.assertTrue(branch_utils.is_master_branch('master'))
if __name__ == '__main__':
unittest.main()