コード例 #1
0
ファイル: validation_test.py プロジェクト: xinghun61/infra
 def test_unsupported_set_of_fields(self):
   variants = [
       common_pb2.GitilesCommit(),
       common_pb2.GitilesCommit(host='gerrit.example.com'),
       common_pb2.GitilesCommit(host='gerrit.example.com', project='project'),
       common_pb2.GitilesCommit(host='gerrit.example.com', id='a', ref='x'),
       common_pb2.GitilesCommit(host='gerrit.example.com', id='a', position=1),
   ]
   for msg in variants:
     self.assert_invalid(msg, r'unsupported set of fields')
コード例 #2
0
 def test_valid_ref(self):
     msg = common_pb2.GitilesCommit(
         host='gerrit.example.com',
         project='project',
         ref='refs/heads/master',
     )
     self.assert_valid(msg)
コード例 #3
0
 def test_valid_id(self):
     msg = common_pb2.GitilesCommit(
         host='gerrit.example.com',
         project='project',
         id=('a' * 40),
     )
     self.assert_valid(msg)
コード例 #4
0
 def test_invalid_ref(self):
     msg = common_pb2.GitilesCommit(
         host='gerrit.example.com',
         project='project',
         ref='master',
     )
     self.assert_invalid(msg, r'ref: must start with "refs/"')
コード例 #5
0
ファイル: validation_test.py プロジェクト: xinghun61/infra
 def test_id_or_ref(self):
   msg = common_pb2.GitilesCommit(
       host='gerrit.example.com',
       project='project',
   )
   with self.assertRaisesRegexp(validation.Error, r'id or ref is required'):
     validation.validate_gitiles_commit(msg, require_ref=False)
コード例 #6
0
 def test_output_gitiles_commit(self):
     msg = rpc_pb2.BuildPredicate(
         output_gitiles_commit=common_pb2.GitilesCommit(
             host='gerrit.example.com',
             project='project',
             id=('a' * 40),
         ), )
     self.assert_valid(msg)
コード例 #7
0
 def test_invalid_id(self):
     msg = common_pb2.GitilesCommit(
         host='gerrit.example.com',
         project='project',
         ref='refs/heads/master',
         id='deadbeef',
     )
     self.assert_invalid(msg, r'id: does not match r"')
コード例 #8
0
 def test_gitiles_commit_incomplete(self):
     msg = rpc_pb2.ScheduleBuildRequest(
         builder=build_pb2.BuilderID(project='chromium',
                                     bucket='try',
                                     builder='linux-rel'),
         gitiles_commit=common_pb2.GitilesCommit(host='gerrit.example.com',
                                                 project='project'),
     )
     self.assert_invalid(msg, r'gitiles_commit\.ref: required')
コード例 #9
0
ファイル: validation_test.py プロジェクト: xinghun61/infra
 def test_position_without_ref(self):
   msg = common_pb2.GitilesCommit(
       host='gerrit.example.com',
       project='project',
       id='a' * 40,
       position=1,
   )
   with self.assertRaisesRegexp(validation.Error, r'position: requires ref'):
     validation.validate_gitiles_commit(msg, require_ref=False)
コード例 #10
0
    def test_gitiles_commit_without_id(self):
        gitiles_commit = common_pb2.GitilesCommit(
            host='gitiles.example.com',
            project='chromium/src',
            ref='refs/heads/master',
        )

        build = self.add(dict(gitiles_commit=gitiles_commit))
        self.assertFalse(
            any(t.startswith('buildset:commit') for t in build.tags))
        self.assertFalse(any(
            t.startswith('gititles_ref:') for t in build.tags))
コード例 #11
0
ファイル: buildtags.py プロジェクト: xinghun61/infra
def parse_gitiles_commit_buildset(buildset):  # pragma: no cover
    # Example:
    #   commit/gitiles/chromium.googlesource.com/chromium/src/+/
    #   4fa74ef7511f4167d15a5a6d464df06e41ffbd70
    m = RE_BUILDSET_GITILES_COMMIT.match(buildset)
    if not m:
        return None
    return common_pb2.GitilesCommit(
        host=m.group(1),
        project=m.group(2),
        id=m.group(3),
    )
コード例 #12
0
  def test_put_with_commit(self, add_async):
    buildset = (
        'commit/gitiles/gitiles.example.com/chromium/src/+/'
        'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
    )
    buildset_tag = 'buildset:' + buildset
    gitiles_ref_tag = 'gitiles_ref:refs/heads/master'

    gitiles_commit = common_pb2.GitilesCommit(
        host='gitiles.example.com',
        project='chromium/src',
        ref='refs/heads/master',
        id='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
    )
    build = test_util.build(
        id=1,
        input=dict(gitiles_commit=gitiles_commit),
        tags=[dict(key='t', value='0')],
    )
    build.tags.append(buildset_tag)
    build.tags.append(gitiles_ref_tag)
    build.tags.sort()
    add_async.return_value = future(build)

    req = {
        'client_operation_id': '42',
        'bucket': 'luci.chromium.try',
        'tags': [buildset_tag, gitiles_ref_tag, 't:0'],
        'parameters_json': json.dumps({api_common.BUILDER_PARAMETER: 'linux'}),
    }
    resp = self.call_api('put', req).json_body
    add_async.assert_called_once_with(
        creation.BuildRequest(
            schedule_build_request=rpc_pb2.ScheduleBuildRequest(
                builder=dict(
                    project='chromium',
                    bucket='try',
                    builder='linux',
                ),
                gitiles_commit=gitiles_commit,
                tags=[dict(key='t', value='0')],
                request_id='42',
                properties=dict(),
            ),
            parameters={},
        )
    )
    self.assertEqual(resp['build']['id'], '1')
    self.assertIn(buildset_tag, resp['build']['tags'])
    self.assertIn(gitiles_ref_tag, resp['build']['tags'])
    self.assertIn('t:0', resp['build']['tags'])
コード例 #13
0
    def test_gitiles_commit(self):
        gitiles_commit = common_pb2.GitilesCommit(
            host='gitiles.example.com',
            project='chromium/src',
            ref='refs/heads/master',
            id='b7a757f457487cd5cfe2dae83f65c5bc10e288b7',
            position=1,
        )

        build = self.add(dict(gitiles_commit=gitiles_commit))
        bs = ('commit/gitiles/gitiles.example.com/chromium/src/+/'
              'b7a757f457487cd5cfe2dae83f65c5bc10e288b7')
        self.assertIn('buildset:' + bs, build.tags)
        self.assertIn('gitiles_ref:refs/heads/master', build.tags)
コード例 #14
0
 def test_host_and_project(self):
     msg = common_pb2.GitilesCommit(host='gerrit.example.com',
                                    project='project')
     self.assert_invalid(msg, 'ref: required')
コード例 #15
0
 def test_empty(self):
     msg = common_pb2.GitilesCommit()
     self.assert_invalid(msg, 'host: required')