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