Beispiel #1
0
    def test_dimensions(self):
        dims = [
            common_pb2.RequestedDimension(key='d', value='1'),
            common_pb2.RequestedDimension(key='d',
                                          value='1',
                                          expiration=dict(seconds=60)),
        ]
        build = self.add(dict(dimensions=dims))

        infra = model.BuildInfra.key_for(build.key).get().parse()
        self.assertEqual(list(infra.buildbucket.requested_dimensions), dims)
        self.assertEqual(list(infra.swarming.task_dimensions), dims)
Beispiel #2
0
    def test_dimensions_in_builder(self):
        with self.mutate_builder_cfg() as cfg:
            cfg.dimensions[:] = [
                '60:a:0',
                '0:a:1',
                'b:0',
                'tombstone:',
            ]

        dims = [
            common_pb2.RequestedDimension(key='b',
                                          value='1',
                                          expiration=dict(seconds=60)),
            common_pb2.RequestedDimension(key='d', value='1'),
        ]
        build = self.add(dict(dimensions=dims))

        infra = model.BuildInfra.key_for(build.key).get().parse()
        self.assertEqual(list(infra.buildbucket.requested_dimensions), dims)
        self.assertEqual(list(infra.swarming.task_dimensions), [
            common_pb2.RequestedDimension(
                key='a',
                value='1',
                expiration=dict(seconds=0),
            ),
            common_pb2.RequestedDimension(
                key='a',
                value='0',
                expiration=dict(seconds=60),
            ),
            common_pb2.RequestedDimension(
                key='b',
                value='1',
                expiration=dict(seconds=60),
            ),
            common_pb2.RequestedDimension(key='d', value='1'),
        ])
Beispiel #3
0
 def test_valid_with_caches(self):
     msg = common_pb2.RequestedDimension(key='caches', value='b')
     self.assert_invalid(msg, r'key: "caches" is invalid')
Beispiel #4
0
 def test_valid_with_no_value(self):
     msg = common_pb2.RequestedDimension(key='a', value='')
     self.assert_invalid(msg, r'value: required')
Beispiel #5
0
 def test_valid_with_expiration(self):
     msg = common_pb2.RequestedDimension(key='a',
                                         value='b',
                                         expiration=dict(seconds=60))
     self.assert_valid(msg)
Beispiel #6
0
 def test_valid(self):
     msg = common_pb2.RequestedDimension(key='a', value='b')
     self.assert_valid(msg)
Beispiel #7
0
 def test_valid_with_nanos(self):
     msg = common_pb2.RequestedDimension(key='a',
                                         value='b',
                                         expiration=dict(nanos=1))
     self.assert_invalid(msg, r'nanos: must be 0')
Beispiel #8
0
 def test_valid_with_42_seconds(self):
     msg = common_pb2.RequestedDimension(key='a',
                                         value='b',
                                         expiration=dict(seconds=42))
     self.assert_invalid(msg, r'seconds: must be a multiple of 60')
Beispiel #9
0
 def test_valid_with_negative_seconds(self):
     msg = common_pb2.RequestedDimension(key='a',
                                         value='b',
                                         expiration=dict(seconds=-1))
     self.assert_invalid(msg, r'seconds: must not be negative')
Beispiel #10
0
 def test_valid_with_pool(self):
     msg = common_pb2.RequestedDimension(key='pool', value='b')
     self.assert_invalid(msg, r'key: "pool" is not allowed')