| # Copyright 2015 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import unittest |
| import update_reference_build as update_ref_build |
| |
| |
| # Disable for accessing private API of update_reference_build class. |
| # pylint: disable=protected-access |
| class UpdateReferenceBuildUnittest(unittest.TestCase): |
| def testInit(self): |
| @classmethod |
| def EmptyVersions(_): |
| return {} |
| @classmethod |
| def AllOmahaVersion1(_): |
| return {'mac':'1', 'linux':'1', 'win':'1'} |
| @classmethod |
| def AllCurrentVersion1(_): |
| return {'Mac64':'1', 'Linux':'1', 'Linux_x64':'1', 'Win':'1'} |
| @classmethod |
| def MixedOmahaVersion23(_): |
| return {'mac':'2', 'linux':'3', 'win':'2'} |
| @classmethod |
| def MissingOmahaVersion(_): |
| return {'mac':'2', 'win':'1'} |
| old_stable = update_ref_build.BuildUpdater._OmahaVersionsMap |
| old_current = update_ref_build.BuildUpdater._CurrentRefBuildsMap |
| try: |
| update_ref_build.BuildUpdater._CurrentRefBuildsMap = EmptyVersions |
| update_ref_build.BuildUpdater._OmahaVersionsMap = AllOmahaVersion1 |
| expected_versions = {'Mac64':'1', 'Linux':'1', 'Linux_x64':'1', 'Win':'1'} |
| b = update_ref_build.BuildUpdater() |
| self.assertEqual(expected_versions, b._platform_to_version_map) |
| |
| update_ref_build.BuildUpdater._OmahaVersionsMap = MissingOmahaVersion |
| expected_versions = {'Mac64':'2', 'Win':'1'} |
| b = update_ref_build.BuildUpdater() |
| self.assertEqual(expected_versions, b._platform_to_version_map) |
| |
| update_ref_build.BuildUpdater._CurrentRefBuildsMap = AllCurrentVersion1 |
| expected_versions = {'Mac64':'2'} |
| b = update_ref_build.BuildUpdater() |
| self.assertEqual(expected_versions, b._platform_to_version_map) |
| |
| update_ref_build.BuildUpdater._OmahaVersionsMap = MixedOmahaVersion23 |
| expected_versions = {'Mac64':'2', 'Linux':'3', 'Linux_x64':'3', 'Win':'2'} |
| b = update_ref_build.BuildUpdater() |
| self.assertEqual(expected_versions, b._platform_to_version_map) |
| finally: |
| update_ref_build.BuildUpdater._OmahaVersionsMap = old_stable |
| update_ref_build.BuildUpdater._CurrentRefBuildsMap = old_current |
| |
| |
| def testOmahaVersions(self): |
| #This is an example of valid output from the _OmahaReport function. |
| #Taken from processing the omaha report on 3/18/15 |
| lines = [['os', 'channel', 'current_version', 'previous_version', |
| 'current_reldate', 'previous_reldate', 'branch_base_commit', |
| 'branch_base_position', 'branch_commit', 'base_webkit_position', |
| 'true_branch', 'v8_version\n'], |
| ['win', 'stable', '41.0.2272.89', '41.0.2272.76', '03/10/15', |
| '03/03/15', '827a380cfdb31aa54c8d56e63ce2c3fd8c3ba4d4', '310958', |
| 'a4d5695040a99b9b2cb196eb5b898383a274376e', '188177', 'master', |
| '4.1.0.21\n'], |
| ['mac', 'stable', '41.0.2272.89', '41.0.2272.76', '03/10/15', |
| '03/03/15', '827a380cfdb31aa54c8d56e63ce2c3fd8c3ba4d4', '310958', |
| 'a4d5695040a99b9b2cb196eb5b898383a274376e', '188177', 'master', |
| '4.1.0.21\n'], |
| ['linux', 'stable', '41.0.2272.89', '41.0.2272.76', '03/10/15', |
| '03/03/15', '827a380cfdb31aa54c8d56e63ce2c3fd8c3ba4d4', '310958', |
| 'a4d5695040a99b9b2cb196eb5b898383a274376e', '188177', 'master', |
| '4.1.0.21\n'], |
| ['cros', 'stable', '41.0.2272.89', '41.0.2272.76', '03/10/15', |
| '03/04/15', '827a380cfdb31aa54c8d56e63ce2c3fd8c3ba4d4', '310958', |
| 'a4d5695040a99b9b2cb196eb5b898383a274376e', '188177', 'master', |
| '4.1.0.21\n'], |
| ['android', 'stable', '41.0.2272.94', '40.0.2214.109', '03/18/15', |
| '02/04/15', '827a380cfdb31aa54c8d56e63ce2c3fd8c3ba4d4', '310958', |
| '70c994cb9b14e4c6934654aaa7089b4b2e8f7788', '188177', '2272', |
| '4.1.0.21\n'], |
| ['ios', 'stable', '41.0.2272.56', '40.0.2214.73', '03/16/15', |
| '02/18/15', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A\n']] |
| @classmethod |
| def GetLines(_): |
| return lines |
| old_omaha_report = update_ref_build.BuildUpdater._OmahaReport |
| update_ref_build.BuildUpdater._OmahaReport = GetLines |
| expected_versions = {'win':'41.0.2272.89', 'mac':'41.0.2272.89', |
| 'linux':'41.0.2272.89'} |
| b = update_ref_build.BuildUpdater() |
| try: |
| versions = b._OmahaVersionsMap() |
| self.assertEqual(expected_versions, versions) |
| lines = [['os', 'channel', 'current_version', 'previous_version', |
| 'current_reldate', 'previous_reldate', 'branch_base_commit', |
| 'branch_base_position', 'branch_commit', 'base_webkit_position', |
| 'true_branch', 'v8_version\n'], |
| ['win', 'stable', '41.0.2272.89', '41.0.2272.76', '03/10/15', |
| '03/03/15', '827a380cfdb31aa54c8d56e63ce2c3fd8c3ba4d4', |
| '310958', 'a4d5695040a99b9b2cb196eb5b898383a274376e', '188177', |
| 'master', '4.1.0.21\n']] |
| self.assertRaises(ValueError, b._OmahaVersionsMap) |
| lines = ['random', 'list', 'of', 'strings'] |
| self.assertRaises(ValueError, b._OmahaVersionsMap) |
| lines = [] |
| self.assertRaises(ValueError, b._OmahaVersionsMap) |
| finally: |
| update_ref_build.BuildUpdater._OmahaReport = old_omaha_report |