xref: /aosp_15_r20/external/angle/build/fuchsia/test/version_unittests.py (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
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