Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2521)

Unified Diff: appengine/swarming/handlers_endpoints_test.py

Issue 1946253003: swarming: refactor cipd input (Closed) Base URL: https://chromium.googlesource.com/external/github.com/luci/luci-py@default-isolate-server
Patch Set: fix import google.protobuf Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: appengine/swarming/handlers_endpoints_test.py
diff --git a/appengine/swarming/handlers_endpoints_test.py b/appengine/swarming/handlers_endpoints_test.py
index 3ad9d3887b5f66a0f364de817688ded0a6121add..fd73223bc8b2fdd5995631e5f7f654f862672b5a 100755
--- a/appengine/swarming/handlers_endpoints_test.py
+++ b/appengine/swarming/handlers_endpoints_test.py
@@ -37,6 +37,9 @@ from server import task_request
from server import task_result
+CIPD_SETTINGS = test_env_handlers.CIPD_SETTINGS
+
+
def message_to_dict(rpc_message):
return json.loads(protojson.encode_message(rpc_message))
@@ -151,10 +154,14 @@ class TasksApiTest(BaseTest):
name='job1',
priority=200,
properties=swarming_rpcs.TaskProperties(
+ cipd_input=swarming_rpcs.CipdInput(
+ packages=[
+ swarming_rpcs.CipdPackage(
+ package_name='rm', version='latest'),
+ ],
+ settings=CIPD_SETTINGS.SerializeToString(),
+ ),
command=['rm', '-rf', '/'],
- packages=[
- swarming_rpcs.CipdPackage(package_name='rm', version='latest'),
- ],
dimensions=[
swarming_rpcs.StringPair(key='pool', value='default'),
],
@@ -176,11 +183,14 @@ class TasksApiTest(BaseTest):
u'name': u'job1',
u'priority': u'200',
u'properties': {
+ u'cipd_input': {
+ u'packages': [{
+ u'package_name': u'rm',
+ u'version': u'latest',
+ }],
+ u'settings': base64.b64encode(CIPD_SETTINGS.SerializeToString()),
+ },
u'command': [u'rm', u'-rf', u'/'],
- u'packages': [{
- u'package_name': u'rm',
- u'version': u'latest',
- }],
u'dimensions': [
{u'key': u'pool', u'value': u'default'},
],
@@ -230,18 +240,21 @@ class TasksApiTest(BaseTest):
priority=200,
properties=swarming_rpcs.TaskProperties(
command=['python', 'run_test.py'],
+ cipd_input=swarming_rpcs.CipdInput(
+ packages=[
+ swarming_rpcs.CipdPackage(
+ package_name='rm',
+ version=test_env_handlers.PINNED_PACKAGE_VERSION),
+ ],
+ settings=CIPD_SETTINGS.SerializeToString(),
+ ),
dimensions=[
swarming_rpcs.StringPair(key='os', value='Amiga'),
swarming_rpcs.StringPair(key='pool', value='default'),
],
execution_timeout_secs=3600,
idempotent=True,
- io_timeout_secs=1200,
- packages=[
- swarming_rpcs.CipdPackage(
- package_name='rm',
- version=test_env_handlers.PINNED_PACKAGE_VERSION),
- ]),
+ io_timeout_secs=1200),
tags=['foo:bar'],
user='joe@localhost')
expected = {
@@ -252,6 +265,13 @@ class TasksApiTest(BaseTest):
u'name': u'job1',
u'priority': u'200',
u'properties': {
+ u'cipd_input': {
+ u'packages': [{
+ u'package_name': u'rm',
+ u'version': test_env_handlers.PINNED_PACKAGE_VERSION,
+ }],
+ u'settings': base64.b64encode(CIPD_SETTINGS.SerializeToString()),
+ },
u'command': [u'python', u'run_test.py'],
u'dimensions': [
{u'key': u'os', u'value': u'Amiga'},
@@ -261,10 +281,6 @@ class TasksApiTest(BaseTest):
u'grace_period_secs': u'30',
u'idempotent': True,
u'io_timeout_secs': u'1200',
- u'packages': [{
- u'package_name': u'rm',
- u'version': test_env_handlers.PINNED_PACKAGE_VERSION,
- }],
},
u'tags': [
u'foo:bar',
@@ -383,6 +399,13 @@ class TasksApiTest(BaseTest):
u'name': u'job1',
u'priority': u'200',
u'properties': {
+ u'cipd_input': {
+ u'packages': [{
+ u'package_name': u'rm',
+ u'version': test_env_handlers.PINNED_PACKAGE_VERSION,
+ }],
+ u'settings': base64.b64encode(CIPD_SETTINGS.SerializeToString()),
+ },
u'command': [u'python', u'run_test.py'],
u'dimensions': [
{u'key': u'os', u'value': u'Amiga'},
@@ -392,10 +415,6 @@ class TasksApiTest(BaseTest):
u'grace_period_secs': u'30',
u'idempotent': True,
u'io_timeout_secs': u'1200',
- u'packages': [{
- u'package_name': u'rm',
- u'version': test_env_handlers.PINNED_PACKAGE_VERSION,
- }],
},
u'tags': [
u'foo:bar',
@@ -413,6 +432,13 @@ class TasksApiTest(BaseTest):
u'name': u'task',
u'priority': u'10',
u'properties': {
+ u'cipd_input': {
+ u'packages': [{
+ u'package_name': u'rm',
+ u'version': test_env_handlers.PINNED_PACKAGE_VERSION,
+ }],
+ u'settings': base64.b64encode(CIPD_SETTINGS.SerializeToString()),
+ },
u'command': [u'python', u'run_test.py'],
u'dimensions': [
{u'key': u'os', u'value': u'Amiga'},
@@ -422,10 +448,6 @@ class TasksApiTest(BaseTest):
u'grace_period_secs': u'30',
u'idempotent': True,
u'io_timeout_secs': u'1200',
- u'packages': [{
- u'package_name': u'rm',
- u'version': test_env_handlers.PINNED_PACKAGE_VERSION,
- }],
},
u'tags': [
u'commit:post',
@@ -575,6 +597,85 @@ class TasksApiTest(BaseTest):
response = self.call_api('new', body=message_to_dict(request))
self.assertEqual(expected, response.json)
+ def test_new_cipd_packages_with_defaults(self):
+ self.mock(random, 'getrandbits', lambda _: 0x88)
+ now = datetime.datetime(2010, 1, 2, 3, 4, 5)
+ self.mock_now(now)
+ str_now = unicode(now.strftime(self.DATETIME_NO_MICRO))
+
+ # Define settings on the server.
+ cfg = config.settings()
+ cfg.cipd.CopyFrom(CIPD_SETTINGS)
+ self.mock(config, 'settings', lambda: cfg)
+
+ request = swarming_rpcs.NewTaskRequest(
+ expiration_secs=30,
+ name='job1',
+ priority=200,
+ properties=swarming_rpcs.TaskProperties(
+ cipd_input=swarming_rpcs.CipdInput(
+ packages=[
+ swarming_rpcs.CipdPackage(
+ package_name='rm',
+ version='latest'),
+ ],
+ ),
+ command=['rm', '-rf', '/'],
+ dimensions=[
+ swarming_rpcs.StringPair(key='pool', value='default'),
+ ],
+ env=[
+ swarming_rpcs.StringPair(key='PATH', value='/'),
+ ],
+ execution_timeout_secs=30,
+ io_timeout_secs=30),
+ tags=['foo:bar'],
+ user='joe@localhost',
+ pubsub_topic='projects/abc/topics/def',
+ pubsub_auth_token='secret that must not be shown',
+ pubsub_userdata='userdata')
+ expected = {
+ u'request': {
+ u'authenticated': u'user:user@example.com',
+ u'created_ts': str_now,
+ u'expiration_secs': u'30',
+ u'name': u'job1',
+ u'priority': u'200',
+ u'properties': {
+ u'cipd_input': {
+ u'packages': [{
+ u'package_name': u'rm',
+ u'version': u'latest',
+ }],
+ u'settings': base64.b64encode(CIPD_SETTINGS.SerializeToString()),
+ },
+ u'command': [u'rm', u'-rf', u'/'],
+ u'dimensions': [
+ {u'key': u'pool', u'value': u'default'},
+ ],
+ u'env': [
+ {u'key': u'PATH', u'value': u'/'},
+ ],
+ u'execution_timeout_secs': u'30',
+ u'grace_period_secs': u'30',
+ u'idempotent': False,
+ u'io_timeout_secs': u'30',
+ },
+ u'pubsub_topic': u'projects/abc/topics/def',
+ u'pubsub_userdata': u'userdata',
+ u'tags': [
+ u'foo:bar',
+ u'pool:default',
+ u'priority:200',
+ u'user:joe@localhost',
+ ],
+ u'user': u'joe@localhost',
+ },
+ u'task_id': u'5cee488008810',
+ }
+ response = self.call_api('new', body=message_to_dict(request))
+ self.assertEqual(expected, response.json)
+
def test_list_ok(self):
"""Asserts that list requests all TaskResultSummaries."""
first, second, str_now_120, start, end = self._gen_two_tasks()
@@ -1112,6 +1213,13 @@ class TaskApiTest(BaseTest):
u'name': u'hi',
u'priority': u'10',
u'properties': {
+ u'cipd_input': {
+ u'packages': [{
+ u'package_name': u'rm',
+ u'version': test_env_handlers.PINNED_PACKAGE_VERSION,
+ }],
+ u'settings': base64.b64encode(CIPD_SETTINGS.SerializeToString()),
+ },
u'command': [u'python', u'run_test.py'],
u'dimensions': [
{u'key': u'os', u'value': u'Amiga'},
@@ -1121,10 +1229,6 @@ class TaskApiTest(BaseTest):
u'grace_period_secs': u'30',
u'idempotent': False,
u'io_timeout_secs': u'1200',
- u'packages': [{
- u'package_name': u'rm',
- u'version': test_env_handlers.PINNED_PACKAGE_VERSION,
- }],
},
u'tags': [
u'os:Amiga',

Powered by Google App Engine
This is Rietveld 408576698