blob: 12656b1907f15dee166c5da0d79222a59d14e7aa [file] [log] [blame]
# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from gae_libs.testcase import TestCase
from infra_api_clients.swarming import swarming_task_request
from infra_api_clients.swarming.swarming_task_request import (
SwarmingTaskInputsRef, SwarmingTaskProperties, SwarmingTaskRequest,
SwarmingResultDBCfg)
from libs.list_of_basestring import ListOfBasestring
class SwarmingTaskRequestTest(TestCase):
def testGetSwarmingTaskRequestTemplate(self):
expected_request = SwarmingTaskRequest(
created_ts=None,
expiration_secs='3600',
name='',
parent_task_id='',
priority='150',
properties=SwarmingTaskProperties(
caches=[],
command=ListOfBasestring(),
relative_cwd=None,
dimensions=[],
env=[],
env_prefixes=[],
execution_timeout_secs='3600',
extra_args=ListOfBasestring(),
grace_period_secs='30',
io_timeout_secs='1200',
idempotent=True,
inputs_ref=SwarmingTaskInputsRef(
isolated=None, isolatedserver=None, namespace=None),
cipd_input=swarming_task_request.CIPDInput(
packages=swarming_task_request.CIPDPackages(),
client_package=swarming_task_request.CIPDClientPackage(
version=None,
package_name=None,
),
server=None),
cas_input_root=swarming_task_request.CASInputRoot(
cas_instance=None,
digest=swarming_task_request.CASInputRootDigest(
size_bytes=None,
hash=None,
),
),
),
pubsub_auth_token=None,
pubsub_topic=None,
pubsub_userdata=None,
service_account=None,
tags=ListOfBasestring(),
user='',
realm=None,
resultdb=SwarmingResultDBCfg(enable=False))
self.assertEqual(expected_request,
SwarmingTaskRequest.GetSwarmingTaskRequestTemplate())
def testFromSerializable(self):
cipd_packages = [{
'path': 'path',
'version': 'version',
'package_name': 'package_name',
}]
data = {
'expiration_secs': '50',
'name': 'a swarming task',
'parent_task_id': 'parent task id',
'priority': '150',
'tags': ['a'],
'user': 'someone',
'some_unused_field': 'blabla',
'pubsub_topic': 'topic',
'pubsub_auth_token': 'token',
'pubsub_userdata': 'data',
'realm': 'foo:realm',
'resultdb': {
'enable': True
},
'properties': {
'caches': [{
'name': 'a',
'path': '.foo'
},],
'command': ['path/to/binary'],
'relative_cwd': 'out/Release',
'unused_property': 'blabla',
'dimensions': [{
'key': 'cpu',
'value': 'x86-64',
},],
'env': [{
'key': 'name',
'value': '1',
},],
'execution_timeout_secs': 10,
'grace_period_secs': 5,
'extra_args': ['--arg=value'],
'idempotent': True,
'inputs_ref': {
'namespace': 'default-gzip',
'isolated': 'a-hash',
'random_field': 'blabla'
},
'io_timeout_secs': 10,
'cipd_input': {
'packages': cipd_packages,
'client_package': {
'version': 'version',
'package_name': 'package_name',
},
'server': 'server',
},
'cas_input_root': {
'cas_instance': 'projects/chromium-swarm/instances/default',
'digest': {
'size_bytes': '1135',
'hash': 'bec400ea1f34229085710fcc7ff174147f4f4af4db',
}
}
},
}
expected_request = SwarmingTaskRequest(
created_ts=None,
expiration_secs='50',
name='a swarming task',
parent_task_id='parent task id',
priority='150',
properties=SwarmingTaskProperties(
caches=[{
'name': 'a',
'path': '.foo'
}],
command=ListOfBasestring.FromSerializable(['path/to/binary']),
relative_cwd='out/Release',
dimensions=[
{
'key': 'cpu',
'value': 'x86-64',
},
],
env=[
{
'key': 'name',
'value': '1',
},
],
env_prefixes=[],
execution_timeout_secs='10',
extra_args=ListOfBasestring.FromSerializable(['--arg=value']),
grace_period_secs='5',
io_timeout_secs='10',
idempotent=True,
inputs_ref=SwarmingTaskInputsRef(
isolated='a-hash',
isolatedserver=None,
namespace='default-gzip'),
cipd_input=swarming_task_request.CIPDInput(
packages=swarming_task_request.CIPDPackages.FromSerializable(
cipd_packages),
client_package=swarming_task_request.CIPDClientPackage(
version='version', package_name='package_name'),
server='server'),
cas_input_root=swarming_task_request.CASInputRoot(
cas_instance='projects/chromium-swarm/instances/default',
digest=swarming_task_request.CASInputRootDigest(
size_bytes='1135',
hash='bec400ea1f34229085710fcc7ff174147f4f4af4db',
),
)),
pubsub_auth_token='token',
pubsub_topic='topic',
pubsub_userdata='data',
service_account=None,
tags=ListOfBasestring.FromSerializable(['a']),
user='someone',
realm='foo:realm',
resultdb=SwarmingResultDBCfg(enable=True))
self.assertEqual(expected_request,
SwarmingTaskRequest.FromSerializable(data))