Home | History | Annotate | Download | only in bionicbb
      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 (at] 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 (at] 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 (at] 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