def test_valid(self): msg = rpc_pb2.BuildPredicate(builder=build_pb2.BuilderID( project='chromium', bucket='try', builder='linux-rel', )) self.assert_valid(msg)
def test_two_ranges(self): msg = rpc_pb2.BuildPredicate( create_time=common_pb2.TimeRange(), build=rpc_pb2.BuildRange(), ) self.assert_invalid(msg, r'create_time and build are mutually exclusive')
def test_bad_page_size(self): msg = rpc_pb2.SearchBuildsRequest( predicate=rpc_pb2.BuildPredicate(builder=build_pb2.BuilderID( project='chromium', bucket='try', builder='linux-rel'), ), page_size=-1, ) self.assert_invalid(msg, r'page_size: must be not be negative')
def test_project_bucket(self): predicate = rpc_pb2.BuildPredicate(builder=dict(project='chromium', bucket='try'), ) q = api.build_predicate_to_search_query(predicate) self.assertFalse(q.project) self.assertEqual(q.bucket_ids, ['chromium/try']) self.assertFalse(q.tags)
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)
def test_invalid_tags(self): msg = rpc_pb2.BuildPredicate( builder=build_pb2.BuilderID(project='chromium', bucket='try', builder='linux-rel'), tags=[common_pb2.StringPair(key='', value='')], ) self.assert_invalid(msg, r'tags: Invalid tag')
def test_create_time(self): predicate = rpc_pb2.BuildPredicate() predicate.create_time.start_time.FromDatetime( datetime.datetime(2018, 1, 1)) predicate.create_time.end_time.FromDatetime( datetime.datetime(2018, 1, 2)) q = api.build_predicate_to_search_query(predicate) self.assertEqual(q.create_time_low, datetime.datetime(2018, 1, 1)) self.assertEqual(q.create_time_high, datetime.datetime(2018, 1, 2))
def test_gerrit_changes(self): msg = rpc_pb2.BuildPredicate( gerrit_changes=[common_pb2.GerritChange()]) self.assert_invalid(msg, r'gerrit_changes\[0\].host: required')
def test_builder_project_builder(self): msg = rpc_pb2.BuildPredicate(builder=build_pb2.BuilderID( project='chromium', builder='linux-rel')) self.assert_invalid(msg, 'builder.bucket: required by .builder field')
def test_builder_project_bucket(self): msg = rpc_pb2.BuildPredicate( builder=build_pb2.BuilderID(project='chromium', bucket='try')) self.assert_valid(msg)
def test_builder_empty(self): msg = rpc_pb2.BuildPredicate(builder=build_pb2.BuilderID()) self.assert_invalid(msg, r'builder\.project: required')
def test_empty(self): msg = rpc_pb2.BuildPredicate() self.assert_valid(msg)
def test_non_canary(self): predicate = rpc_pb2.BuildPredicate(canary=common_pb2.NO) q = api.build_predicate_to_search_query(predicate) self.assertEqual(q.canary, False)
def test_build_range(self): predicate = rpc_pb2.BuildPredicate(build=rpc_pb2.BuildRange( start_build_id=100, end_build_id=90), ) q = api.build_predicate_to_search_query(predicate) self.assertEqual(q.build_low, 89) self.assertEqual(q.build_high, 101)