xref: /aosp_15_r20/external/pigweed/pw_presubmit/py/context_test.py (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1*61c4878aSAndroid Build Coastguard Worker#!/usr/bin/env python3
2*61c4878aSAndroid Build Coastguard Worker# Copyright 2023 The Pigweed Authors
3*61c4878aSAndroid Build Coastguard Worker#
4*61c4878aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); you may not
5*61c4878aSAndroid Build Coastguard Worker# use this file except in compliance with the License. You may obtain a copy of
6*61c4878aSAndroid Build Coastguard Worker# the License at
7*61c4878aSAndroid Build Coastguard Worker#
8*61c4878aSAndroid Build Coastguard Worker#     https://www.apache.org/licenses/LICENSE-2.0
9*61c4878aSAndroid Build Coastguard Worker#
10*61c4878aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
11*61c4878aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12*61c4878aSAndroid Build Coastguard Worker# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13*61c4878aSAndroid Build Coastguard Worker# License for the specific language governing permissions and limitations under
14*61c4878aSAndroid Build Coastguard Worker# the License.
15*61c4878aSAndroid Build Coastguard Worker"""Tests for presubmit context classes."""
16*61c4878aSAndroid Build Coastguard Worker
17*61c4878aSAndroid Build Coastguard Workerimport unittest
18*61c4878aSAndroid Build Coastguard Worker
19*61c4878aSAndroid Build Coastguard Workerfrom pw_presubmit import presubmit_context
20*61c4878aSAndroid Build Coastguard Worker
21*61c4878aSAndroid Build Coastguard Worker
22*61c4878aSAndroid Build Coastguard Workerclass ContextTest(unittest.TestCase):
23*61c4878aSAndroid Build Coastguard Worker    """Tests for presubmit context classes."""
24*61c4878aSAndroid Build Coastguard Worker
25*61c4878aSAndroid Build Coastguard Worker    def test_presubmitcontext(self):  # pylint: disable=no-self-use
26*61c4878aSAndroid Build Coastguard Worker        _ = presubmit_context.PresubmitContext.create_for_testing()
27*61c4878aSAndroid Build Coastguard Worker
28*61c4878aSAndroid Build Coastguard Worker    def test_lucicontext(self):
29*61c4878aSAndroid Build Coastguard Worker        ctx = presubmit_context.LuciContext.create_for_testing(
30*61c4878aSAndroid Build Coastguard Worker            BUILDBUCKET_ID='88123',
31*61c4878aSAndroid Build Coastguard Worker            BUILDBUCKET_NAME='project:bucket.dev.ci:builder-linux',
32*61c4878aSAndroid Build Coastguard Worker            BUILD_NUMBER='12',
33*61c4878aSAndroid Build Coastguard Worker            SWARMING_SERVER='https://chrome-swarming.appspot.com',
34*61c4878aSAndroid Build Coastguard Worker            SWARMING_TASK_ID='123def',
35*61c4878aSAndroid Build Coastguard Worker        )
36*61c4878aSAndroid Build Coastguard Worker
37*61c4878aSAndroid Build Coastguard Worker        self.assertEqual(ctx.buildbucket_id, 88123)
38*61c4878aSAndroid Build Coastguard Worker        self.assertEqual(ctx.build_number, 12)
39*61c4878aSAndroid Build Coastguard Worker        self.assertEqual(ctx.project, 'project')
40*61c4878aSAndroid Build Coastguard Worker        self.assertEqual(ctx.bucket, 'bucket.dev.ci')
41*61c4878aSAndroid Build Coastguard Worker        self.assertEqual(ctx.builder, 'builder-linux')
42*61c4878aSAndroid Build Coastguard Worker        self.assertEqual(
43*61c4878aSAndroid Build Coastguard Worker            ctx.swarming_server,
44*61c4878aSAndroid Build Coastguard Worker            'https://chrome-swarming.appspot.com',
45*61c4878aSAndroid Build Coastguard Worker        )
46*61c4878aSAndroid Build Coastguard Worker        self.assertEqual(ctx.swarming_task_id, '123def')
47*61c4878aSAndroid Build Coastguard Worker        self.assertEqual(
48*61c4878aSAndroid Build Coastguard Worker            ctx.cas_instance,
49*61c4878aSAndroid Build Coastguard Worker            'projects/chrome-swarming/instances/default_instance',
50*61c4878aSAndroid Build Coastguard Worker        )
51*61c4878aSAndroid Build Coastguard Worker
52*61c4878aSAndroid Build Coastguard Worker        self.assertFalse(ctx.is_try)
53*61c4878aSAndroid Build Coastguard Worker        self.assertTrue(ctx.is_ci)
54*61c4878aSAndroid Build Coastguard Worker        self.assertTrue(ctx.is_dev)
55*61c4878aSAndroid Build Coastguard Worker        self.assertFalse(ctx.is_shadow)
56*61c4878aSAndroid Build Coastguard Worker        self.assertFalse(ctx.is_prod)
57*61c4878aSAndroid Build Coastguard Worker
58*61c4878aSAndroid Build Coastguard Worker    def test_lucitrigger(self):
59*61c4878aSAndroid Build Coastguard Worker        trigger = presubmit_context.LuciTrigger.create_for_testing(
60*61c4878aSAndroid Build Coastguard Worker            number=1234,
61*61c4878aSAndroid Build Coastguard Worker            patchset=5,
62*61c4878aSAndroid Build Coastguard Worker            remote='https://pigweed-internal.googlesource.com/pigweed',
63*61c4878aSAndroid Build Coastguard Worker            project='pigweed',
64*61c4878aSAndroid Build Coastguard Worker            branch='main',
65*61c4878aSAndroid Build Coastguard Worker            ref='refs/changes/34/1234/5',
66*61c4878aSAndroid Build Coastguard Worker            gerrit_name='pigweed-internal',
67*61c4878aSAndroid Build Coastguard Worker            submitted=False,
68*61c4878aSAndroid Build Coastguard Worker        )[0]
69*61c4878aSAndroid Build Coastguard Worker
70*61c4878aSAndroid Build Coastguard Worker        self.assertEqual(
71*61c4878aSAndroid Build Coastguard Worker            trigger.gerrit_host,
72*61c4878aSAndroid Build Coastguard Worker            'https://pigweed-internal-review.googlesource.com',
73*61c4878aSAndroid Build Coastguard Worker        )
74*61c4878aSAndroid Build Coastguard Worker        self.assertEqual(
75*61c4878aSAndroid Build Coastguard Worker            trigger.gerrit_url,
76*61c4878aSAndroid Build Coastguard Worker            'https://pigweed-internal-review.googlesource.com/c/1234',
77*61c4878aSAndroid Build Coastguard Worker        )
78*61c4878aSAndroid Build Coastguard Worker        self.assertEqual(
79*61c4878aSAndroid Build Coastguard Worker            trigger.gitiles_url,
80*61c4878aSAndroid Build Coastguard Worker            'https://pigweed-internal.googlesource.com/pigweed/+/'
81*61c4878aSAndroid Build Coastguard Worker            'refs/changes/34/1234/5',
82*61c4878aSAndroid Build Coastguard Worker        )
83*61c4878aSAndroid Build Coastguard Worker
84*61c4878aSAndroid Build Coastguard Worker
85*61c4878aSAndroid Build Coastguard Workerif __name__ == '__main__':
86*61c4878aSAndroid Build Coastguard Worker    unittest.main()
87