• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 import mock
2 import unittest
3 
4 import presubmit
5 
6 
7 class TestShouldSkipBuild(unittest.TestCase):
8     @mock.patch('presubmit.contains_bionicbb')
9     @mock.patch('presubmit.contains_cleanspec')
10     @mock.patch('gerrit.get_commit')
11     def test_accepts_googlers(self, mock_commit, *other_checks):
12         mock_commit.return_value = {
13             'committer': {'email': 'googler@google.com'}
14         }
15 
16         for other_check in other_checks:
17             other_check.return_value = False
18 
19         for message_type in ('newchange', 'newpatchset', 'comment'):
20             self.assertFalse(presubmit.should_skip_build({
21                 'MessageType': message_type,
22                 'Change-Id': '',
23                 'PatchSet': '',
24             }))
25 
26     @mock.patch('presubmit.contains_bionicbb')
27     @mock.patch('presubmit.contains_cleanspec')
28     @mock.patch('gerrit.get_commit')
29     def test_rejects_googlish_domains(self, mock_commit, *other_checks):
30         mock_commit.return_value = {
31             'committer': {'email': 'fakegoogler@google.com.fake.com'}
32         }
33 
34         for other_check in other_checks:
35             other_check.return_value = False
36 
37         for message_type in ('newchange', 'newpatchset', 'comment'):
38             self.assertTrue(presubmit.should_skip_build({
39                 'MessageType': message_type,
40                 'Change-Id': '',
41                 'PatchSet': '',
42             }))
43 
44     @mock.patch('presubmit.contains_bionicbb')
45     @mock.patch('presubmit.contains_cleanspec')
46     @mock.patch('gerrit.get_commit')
47     def test_rejects_non_googlers(self, mock_commit, *other_checks):
48         mock_commit.return_value = {
49             'committer': {'email': 'johndoe@example.com'}
50         }
51 
52         for other_check in other_checks:
53             other_check.return_value = False
54 
55         for message_type in ('newchange', 'newpatchset', 'comment'):
56             self.assertTrue(presubmit.should_skip_build({
57                 'MessageType': message_type,
58                 'Change-Id': '',
59                 'PatchSet': '',
60             }))
61 
62     @mock.patch('presubmit.contains_bionicbb')
63     @mock.patch('presubmit.is_untrusted_committer')
64     @mock.patch('gerrit.get_files_for_revision')
65     def test_skips_cleanspecs(self, mock_files, *other_checks):
66         mock_files.return_value = ['foo/CleanSpec.mk']
67         for other_check in other_checks:
68             other_check.return_value = False
69 
70         for message_type in ('newchange', 'newpatchset', 'comment'):
71             self.assertTrue(presubmit.should_skip_build({
72                 'MessageType': message_type,
73                 'Change-Id': '',
74                 'PatchSet': '',
75             }))
76 
77     @mock.patch('presubmit.contains_cleanspec')
78     @mock.patch('presubmit.is_untrusted_committer')
79     @mock.patch('gerrit.get_files_for_revision')
80     def test_skips_bionicbb(self, mock_files, *other_checks):
81         mock_files.return_value = ['tools/bionicbb/common.sh']
82         for other_check in other_checks:
83             other_check.return_value = False
84 
85         for message_type in ('newchange', 'newpatchset', 'comment'):
86             self.assertTrue(presubmit.should_skip_build({
87                 'MessageType': message_type,
88                 'Change-Id': '',
89                 'PatchSet': '',
90             }))
91 
92 
93 if __name__ == '__main__':
94     unittest.main()
95