1*8975f5c5SAndroid Build Coastguard Worker#!/usr/bin/env vpython3 2*8975f5c5SAndroid Build Coastguard Worker# Copyright 2024 The Chromium Authors 3*8975f5c5SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 4*8975f5c5SAndroid Build Coastguard Worker# found in the LICENSE file. 5*8975f5c5SAndroid Build Coastguard Worker"""File for testing version.py.""" 6*8975f5c5SAndroid Build Coastguard Worker 7*8975f5c5SAndroid Build Coastguard Workerimport unittest 8*8975f5c5SAndroid Build Coastguard Workerimport unittest.mock as mock 9*8975f5c5SAndroid Build Coastguard Worker 10*8975f5c5SAndroid Build Coastguard Workerfrom typing import Callable, List 11*8975f5c5SAndroid Build Coastguard Worker 12*8975f5c5SAndroid Build Coastguard Workerimport version 13*8975f5c5SAndroid Build Coastguard Worker 14*8975f5c5SAndroid Build Coastguard Worker 15*8975f5c5SAndroid Build Coastguard Workerdef _test(args: List[str], f: Callable) -> None: 16*8975f5c5SAndroid Build Coastguard Worker with mock.patch('sys.argv', args): 17*8975f5c5SAndroid Build Coastguard Worker # pylint: disable=protected-access 18*8975f5c5SAndroid Build Coastguard Worker version._GIT_ARGS = version._load_git_args() 19*8975f5c5SAndroid Build Coastguard Worker f() 20*8975f5c5SAndroid Build Coastguard Worker 21*8975f5c5SAndroid Build Coastguard Worker 22*8975f5c5SAndroid Build Coastguard Worker_TRY_ARGS = [ 23*8975f5c5SAndroid Build Coastguard Worker 'version.py', '--git-revision=e98127af84bf5b33a6e657c90dfd3f3a731eb28c', 24*8975f5c5SAndroid Build Coastguard Worker '--gerrit-issue=5009604', '--gerrit-patchset=16', 25*8975f5c5SAndroid Build Coastguard Worker '--buildbucket-id=8756180599882888289' 26*8975f5c5SAndroid Build Coastguard Worker] 27*8975f5c5SAndroid Build Coastguard Worker 28*8975f5c5SAndroid Build Coastguard Worker_0_TRY_ARGS = [ 29*8975f5c5SAndroid Build Coastguard Worker 'version.py', '--git-revision=e98127af84bf5b33a6e657c90dfd3f3a731eb28c', 30*8975f5c5SAndroid Build Coastguard Worker '--gerrit-issue=0', '--gerrit-patchset=16', 31*8975f5c5SAndroid Build Coastguard Worker '--buildbucket-id=8756180599882888289' 32*8975f5c5SAndroid Build Coastguard Worker] 33*8975f5c5SAndroid Build Coastguard Worker 34*8975f5c5SAndroid Build Coastguard Worker_CI_ARGS = [ 35*8975f5c5SAndroid Build Coastguard Worker 'version.py', '--git-revision=e98127af84bf5b33a6e657c90dfd3f3a731eb28c' 36*8975f5c5SAndroid Build Coastguard Worker] 37*8975f5c5SAndroid Build Coastguard Worker 38*8975f5c5SAndroid Build Coastguard Worker 39*8975f5c5SAndroid Build Coastguard Worker# pylint: disable=missing-function-docstring 40*8975f5c5SAndroid Build Coastguard Workerclass VersionTest(unittest.TestCase): 41*8975f5c5SAndroid Build Coastguard Worker """Tests of version.py.""" 42*8975f5c5SAndroid Build Coastguard Worker 43*8975f5c5SAndroid Build Coastguard Worker def test_is_try_build(self) -> None: 44*8975f5c5SAndroid Build Coastguard Worker _test(_TRY_ARGS, lambda: self.assertTrue(version.is_try_build())) 45*8975f5c5SAndroid Build Coastguard Worker 46*8975f5c5SAndroid Build Coastguard Worker def test_is_not_try_build(self) -> None: 47*8975f5c5SAndroid Build Coastguard Worker _test(_CI_ARGS, lambda: self.assertFalse(version.is_try_build())) 48*8975f5c5SAndroid Build Coastguard Worker 49*8975f5c5SAndroid Build Coastguard Worker def test_try_git_revision(self) -> None: 50*8975f5c5SAndroid Build Coastguard Worker _test( 51*8975f5c5SAndroid Build Coastguard Worker _TRY_ARGS, lambda: self.assertEqual( 52*8975f5c5SAndroid Build Coastguard Worker version.git_revision(), 53*8975f5c5SAndroid Build Coastguard Worker 'e98127af84bf5b33a6e657c90dfd3f3a731eb28c/5009604/16')) 54*8975f5c5SAndroid Build Coastguard Worker 55*8975f5c5SAndroid Build Coastguard Worker def test_ci_git_revision(self) -> None: 56*8975f5c5SAndroid Build Coastguard Worker _test( 57*8975f5c5SAndroid Build Coastguard Worker _CI_ARGS, lambda: self.assertEqual( 58*8975f5c5SAndroid Build Coastguard Worker version.git_revision(), 59*8975f5c5SAndroid Build Coastguard Worker 'e98127af84bf5b33a6e657c90dfd3f3a731eb28c')) 60*8975f5c5SAndroid Build Coastguard Worker 61*8975f5c5SAndroid Build Coastguard Worker def test_is_try_build_0(self) -> None: 62*8975f5c5SAndroid Build Coastguard Worker _test(_0_TRY_ARGS, lambda: self.assertTrue(version.is_try_build())) 63*8975f5c5SAndroid Build Coastguard Worker 64*8975f5c5SAndroid Build Coastguard Worker def test_try_git_revision_0(self) -> None: 65*8975f5c5SAndroid Build Coastguard Worker _test( 66*8975f5c5SAndroid Build Coastguard Worker _0_TRY_ARGS, lambda: self.assertEqual( 67*8975f5c5SAndroid Build Coastguard Worker version.git_revision(), 68*8975f5c5SAndroid Build Coastguard Worker 'e98127af84bf5b33a6e657c90dfd3f3a731eb28c/0/16')) 69