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

Side by Side Diff: appengine/swarming/handlers_bot_test.py

Issue 2856733002: swarming: add transaction_id to tasks.new request
Patch Set: nits Created 3 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 unified diff | Download patch
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # coding: utf-8 2 # coding: utf-8
3 # Copyright 2015 The LUCI Authors. All rights reserved. 3 # Copyright 2015 The LUCI Authors. All rights reserved.
4 # Use of this source code is governed under the Apache License, Version 2.0 4 # Use of this source code is governed under the Apache License, Version 2.0
5 # that can be found in the LICENSE file. 5 # that can be found in the LICENSE file.
6 6
7 import base64 7 import base64
8 import datetime 8 import datetime
9 import logging 9 import logging
10 import os 10 import os
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 265
266 def test_poll_task_raw(self): 266 def test_poll_task_raw(self):
267 # Successfully poll a task. 267 # Successfully poll a task.
268 self.mock(random, 'getrandbits', lambda _: 0x88) 268 self.mock(random, 'getrandbits', lambda _: 0x88)
269 now = datetime.datetime(2010, 1, 2, 3, 4, 5) 269 now = datetime.datetime(2010, 1, 2, 3, 4, 5)
270 self.mock_now(now) 270 self.mock_now(now)
271 str_now = unicode(now.strftime(DATETIME_FORMAT)) 271 str_now = unicode(now.strftime(DATETIME_FORMAT))
272 # A bot polls, gets a task, updates it, completes it. 272 # A bot polls, gets a task, updates it, completes it.
273 params = self.do_handshake() 273 params = self.do_handshake()
274 # Enqueue a task. 274 # Enqueue a task.
275 _, task_id = self.client_create_task_raw() 275 _, _, task_id = self.client_create_task_raw()
276 self.assertEqual('0', task_id[-1]) 276 self.assertEqual('0', task_id[-1])
277 # Convert TaskResultSummary reference to TaskRunResult. 277 # Convert TaskResultSummary reference to TaskRunResult.
278 task_id = task_id[:-1] + '1' 278 task_id = task_id[:-1] + '1'
279 response = self.post_json('/swarming/api/v1/bot/poll', params) 279 response = self.post_json('/swarming/api/v1/bot/poll', params)
280 expected = { 280 expected = {
281 u'cmd': u'run', 281 u'cmd': u'run',
282 u'manifest': { 282 u'manifest': {
283 u'bot_id': u'bot1', 283 u'bot_id': u'bot1',
284 u'caches': [], 284 u'caches': [],
285 u'cipd_input': { 285 u'cipd_input': {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 u'started_ts': str_now, 334 u'started_ts': str_now,
335 u'state': u'RUNNING', 335 u'state': u'RUNNING',
336 u'task_id': u'5cee488008811', 336 u'task_id': u'5cee488008811',
337 u'try_number': u'1', 337 u'try_number': u'1',
338 } 338 }
339 self.assertEqual(expected, response) 339 self.assertEqual(expected, response)
340 340
341 def test_poll_task_with_bot_service_account(self): 341 def test_poll_task_with_bot_service_account(self):
342 params = self.do_handshake() 342 params = self.do_handshake()
343 343
344 _, task_id = self.client_create_task_raw(service_account_token='bot') 344 _, _, task_id = self.client_create_task_raw(service_account_token='bot')
345 self.assertEqual('0', task_id[-1]) 345 self.assertEqual('0', task_id[-1])
346 task_id = task_id[:-1] + '1' 346 task_id = task_id[:-1] + '1'
347 347
348 response = self.post_json('/swarming/api/v1/bot/poll', params) 348 response = self.post_json('/swarming/api/v1/bot/poll', params)
349 expected = { 349 expected = {
350 u'cmd': u'run', 350 u'cmd': u'run',
351 u'manifest': { 351 u'manifest': {
352 u'bot_id': u'bot1', 352 u'bot_id': u'bot1',
353 u'caches': [], 353 u'caches': [],
354 u'cipd_input': { 354 u'cipd_input': {
(...skipping 25 matching lines...) Expand all
380 u'outputs': [u'foo', u'path/to/foobar'], 380 u'outputs': [u'foo', u'path/to/foobar'],
381 u'service_account': u'bot', 381 u'service_account': u'bot',
382 u'task_id': task_id, 382 u'task_id': task_id,
383 }, 383 },
384 } 384 }
385 self.assertEqual(expected, response) 385 self.assertEqual(expected, response)
386 386
387 def test_poll_task_with_caches(self): 387 def test_poll_task_with_caches(self):
388 params = self.do_handshake() 388 params = self.do_handshake()
389 389
390 _, task_id = self.client_create_task_raw({ 390 _, _, task_id = self.client_create_task_raw({
391 'caches': [{ 391 'caches': [{
392 'name': 'git_infra', 392 'name': 'git_infra',
393 'path': 'git_cache', 393 'path': 'git_cache',
394 }], 394 }],
395 }) 395 })
396 self.assertEqual('0', task_id[-1]) 396 self.assertEqual('0', task_id[-1])
397 task_id = task_id[:-1] + '1' 397 task_id = task_id[:-1] + '1'
398 398
399 response = self.post_json('/swarming/api/v1/bot/poll', params) 399 response = self.post_json('/swarming/api/v1/bot/poll', params)
400 expected = { 400 expected = {
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 495
496 def test_complete_task_isolated(self): 496 def test_complete_task_isolated(self):
497 # Successfully poll a task. 497 # Successfully poll a task.
498 self.mock(random, 'getrandbits', lambda _: 0x88) 498 self.mock(random, 'getrandbits', lambda _: 0x88)
499 now = datetime.datetime(2010, 1, 2, 3, 4, 5) 499 now = datetime.datetime(2010, 1, 2, 3, 4, 5)
500 self.mock_now(now) 500 self.mock_now(now)
501 str_now = unicode(now.strftime(DATETIME_FORMAT)) 501 str_now = unicode(now.strftime(DATETIME_FORMAT))
502 # A bot polls, gets a task, updates it, completes it. 502 # A bot polls, gets a task, updates it, completes it.
503 params = self.do_handshake() 503 params = self.do_handshake()
504 # Enqueue a task. 504 # Enqueue a task.
505 _, task_id = self.client_create_task_isolated() 505 _, _, task_id = self.client_create_task_isolated()
506 self.assertEqual('0', task_id[-1]) 506 self.assertEqual('0', task_id[-1])
507 # Convert TaskResultSummary reference to TaskRunResult. 507 # Convert TaskResultSummary reference to TaskRunResult.
508 task_id = task_id[:-1] + '1' 508 task_id = task_id[:-1] + '1'
509 response = self.post_json('/swarming/api/v1/bot/poll', params) 509 response = self.post_json('/swarming/api/v1/bot/poll', params)
510 expected = { 510 expected = {
511 u'cmd': u'run', 511 u'cmd': u'run',
512 u'manifest': { 512 u'manifest': {
513 u'bot_id': u'bot1', 513 u'bot_id': u'bot1',
514 u'caches': [], 514 u'caches': [],
515 u'cipd_input': { 515 u'cipd_input': {
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 u'server_versions': [u'v1a'], 631 u'server_versions': [u'v1a'],
632 u'started_ts': str_now, 632 u'started_ts': str_now,
633 u'state': u'COMPLETED', 633 u'state': u'COMPLETED',
634 u'task_id': u'5cee488008811', 634 u'task_id': u'5cee488008811',
635 u'try_number': u'1', 635 u'try_number': u'1',
636 } 636 }
637 self.assertEqual(expected, response) 637 self.assertEqual(expected, response)
638 638
639 def test_poll_not_enough_time(self): 639 def test_poll_not_enough_time(self):
640 # Make sure there's a task that we don't get. 640 # Make sure there's a task that we don't get.
641 _, task_id = self.client_create_task_raw() 641 _, _, task_id = self.client_create_task_raw()
642 self.assertEqual('0', task_id[-1]) 642 self.assertEqual('0', task_id[-1])
643 params = self.do_handshake() 643 params = self.do_handshake()
644 bot_info = bot_management.get_info_key('bot1').get() 644 bot_info = bot_management.get_info_key('bot1').get()
645 bot_info.lease_expiration_ts = datetime.datetime(1969, 1, 1) 645 bot_info.lease_expiration_ts = datetime.datetime(1969, 1, 1)
646 bot_info.put() 646 bot_info.put()
647 response = self.post_json('/swarming/api/v1/bot/poll', params) 647 response = self.post_json('/swarming/api/v1/bot/poll', params)
648 expected = { 648 expected = {
649 u'cmd': u'sleep', 649 u'cmd': u'sleep',
650 u'quarantined': False, 650 u'quarantined': False,
651 } 651 }
652 self.assertTrue(response.pop('duration')) 652 self.assertTrue(response.pop('duration'))
653 self.assertEqual(expected, response) 653 self.assertEqual(expected, response)
654 654
655 def test_poll_enough_time(self): 655 def test_poll_enough_time(self):
656 # Successfully poll a task. 656 # Successfully poll a task.
657 self.mock(random, 'getrandbits', lambda _: 0x88) 657 self.mock(random, 'getrandbits', lambda _: 0x88)
658 now = datetime.datetime(2010, 1, 2, 3, 4, 5) 658 now = datetime.datetime(2010, 1, 2, 3, 4, 5)
659 self.mock_now(now) 659 self.mock_now(now)
660 _, task_id = self.client_create_task_isolated() 660 _, _, task_id = self.client_create_task_isolated()
661 self.assertEqual('0', task_id[-1]) 661 self.assertEqual('0', task_id[-1])
662 params = self.do_handshake() 662 params = self.do_handshake()
663 bot_info = bot_management.get_info_key('bot1').get() 663 bot_info = bot_management.get_info_key('bot1').get()
664 bot_info.lease_expiration_ts = datetime.datetime(3000, 1, 1) 664 bot_info.lease_expiration_ts = datetime.datetime(3000, 1, 1)
665 bot_info.put() 665 bot_info.put()
666 response = self.post_json('/swarming/api/v1/bot/poll', params) 666 response = self.post_json('/swarming/api/v1/bot/poll', params)
667 # Convert TaskResultSummary reference to TaskRunResult. 667 # Convert TaskResultSummary reference to TaskRunResult.
668 task_id = task_id[:-1] + '1' 668 task_id = task_id[:-1] + '1'
669 expected = { 669 expected = {
670 u'cmd': u'run', 670 u'cmd': u'run',
(...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after
1150 self.app.get('/bot_code?tok=%s' % tok, status=200) 1150 self.app.get('/bot_code?tok=%s' % tok, status=200)
1151 1151
1152 1152
1153 if __name__ == '__main__': 1153 if __name__ == '__main__':
1154 if '-v' in sys.argv: 1154 if '-v' in sys.argv:
1155 unittest.TestCase.maxDiff = None 1155 unittest.TestCase.maxDiff = None
1156 logging.basicConfig( 1156 logging.basicConfig(
1157 level=logging.DEBUG if '-v' in sys.argv else logging.CRITICAL, 1157 level=logging.DEBUG if '-v' in sys.argv else logging.CRITICAL,
1158 format='%(levelname)-7s %(filename)s:%(lineno)3d %(message)s') 1158 format='%(levelname)-7s %(filename)s:%(lineno)3d %(message)s')
1159 unittest.main() 1159 unittest.main()
OLDNEW
« no previous file with comments | « no previous file | appengine/swarming/handlers_endpoints.py » ('j') | appengine/swarming/swarming_rpcs.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698