| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright 2014 The LUCI Authors. All rights reserved. | 2 # Copyright 2014 The LUCI Authors. All rights reserved. |
| 3 # Use of this source code is governed under the Apache License, Version 2.0 | 3 # Use of this source code is governed under the Apache License, Version 2.0 |
| 4 # that can be found in the LICENSE file. | 4 # that can be found in the LICENSE file. |
| 5 | 5 |
| 6 import datetime | 6 import datetime |
| 7 import logging | 7 import logging |
| 8 import random | 8 import random |
| 9 import sys | 9 import sys |
| 10 import unittest | 10 import unittest |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 247 'extra_args': [], | 247 'extra_args': [], |
| 248 'execution_timeout_secs': 30, | 248 'execution_timeout_secs': 30, |
| 249 'grace_period_secs': 30, | 249 'grace_period_secs': 30, |
| 250 'idempotent': True, | 250 'idempotent': True, |
| 251 'inputs_ref': { | 251 'inputs_ref': { |
| 252 'isolated': None, | 252 'isolated': None, |
| 253 'isolatedserver': 'https://isolateserver.appspot.com', | 253 'isolatedserver': 'https://isolateserver.appspot.com', |
| 254 'namespace': 'default-gzip', | 254 'namespace': 'default-gzip', |
| 255 }, | 255 }, |
| 256 'io_timeout_secs': None, | 256 'io_timeout_secs': None, |
| 257 'outputs': [], |
| 257 } | 258 } |
| 258 expected_request = { | 259 expected_request = { |
| 259 'authenticated': auth_testing.DEFAULT_MOCKED_IDENTITY, | 260 'authenticated': auth_testing.DEFAULT_MOCKED_IDENTITY, |
| 260 'name': u'Request name', | 261 'name': u'Request name', |
| 261 'parent_task_id': unicode(parent_id), | 262 'parent_task_id': unicode(parent_id), |
| 262 'priority': 49, | 263 'priority': 49, |
| 263 'properties': expected_properties, | 264 'properties': expected_properties, |
| 264 # Intentionally hard code the hash value since it has to be deterministic. | 265 # Intentionally hard code the hash value since it has to be deterministic. |
| 265 # Other unit tests should use the calculated value. | 266 # Other unit tests should use the calculated value. |
| 266 'properties_hash': '411f20b8cda819b5fe47bcf26f5566c37afce0ed', | 267 'properties_hash': 'ca5c7327e43431514472b081b0bbeb62dc1bd8e9', |
| 267 'pubsub_topic': None, | 268 'pubsub_topic': None, |
| 268 'pubsub_userdata': None, | 269 'pubsub_userdata': None, |
| 269 'service_account': u'none', | 270 'service_account': u'none', |
| 270 'tags': [ | 271 'tags': [ |
| 271 u'OS:Windows-3.1.1', | 272 u'OS:Windows-3.1.1', |
| 272 u'hostname:localhost', | 273 u'hostname:localhost', |
| 273 u'pool:default', | 274 u'pool:default', |
| 274 u'priority:49', | 275 u'priority:49', |
| 275 u'service_account:none', | 276 u'service_account:none', |
| 276 u'tag:1', | 277 u'tag:1', |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 'extra_args': [], | 322 'extra_args': [], |
| 322 'execution_timeout_secs': 30, | 323 'execution_timeout_secs': 30, |
| 323 'grace_period_secs': 30, | 324 'grace_period_secs': 30, |
| 324 'idempotent': True, | 325 'idempotent': True, |
| 325 'inputs_ref': { | 326 'inputs_ref': { |
| 326 'isolated': None, | 327 'isolated': None, |
| 327 'isolatedserver': 'https://isolateserver.appspot.com', | 328 'isolatedserver': 'https://isolateserver.appspot.com', |
| 328 'namespace': 'default-gzip', | 329 'namespace': 'default-gzip', |
| 329 }, | 330 }, |
| 330 'io_timeout_secs': None, | 331 'io_timeout_secs': None, |
| 332 'outputs': [], |
| 331 } | 333 } |
| 332 expected_request = { | 334 expected_request = { |
| 333 'authenticated': auth_testing.DEFAULT_MOCKED_IDENTITY, | 335 'authenticated': auth_testing.DEFAULT_MOCKED_IDENTITY, |
| 334 'name': u'Request name', | 336 'name': u'Request name', |
| 335 'parent_task_id': unicode(parent_id), | 337 'parent_task_id': unicode(parent_id), |
| 336 'priority': 49, | 338 'priority': 49, |
| 337 'properties': expected_properties, | 339 'properties': expected_properties, |
| 338 # Intentionally hard code the hash value since it has to be deterministic. | 340 # Intentionally hard code the hash value since it has to be deterministic. |
| 339 # Other unit tests should use the calculated value. | 341 # Other unit tests should use the calculated value. |
| 340 'properties_hash': '411f20b8cda819b5fe47bcf26f5566c37afce0ed', | 342 'properties_hash': 'ca5c7327e43431514472b081b0bbeb62dc1bd8e9', |
| 341 'pubsub_topic': None, | 343 'pubsub_topic': None, |
| 342 'pubsub_userdata': None, | 344 'pubsub_userdata': None, |
| 343 'service_account': u'none', | 345 'service_account': u'none', |
| 344 'tags': [ | 346 'tags': [ |
| 345 u'OS:Windows-3.1.1', | 347 u'OS:Windows-3.1.1', |
| 346 u'hostname:localhost', | 348 u'hostname:localhost', |
| 347 u'pool:default', | 349 u'pool:default', |
| 348 u'priority:49', | 350 u'priority:49', |
| 349 u'service_account:none', | 351 u'service_account:none', |
| 350 u'tag:1', | 352 u'tag:1', |
| (...skipping 21 matching lines...) Expand all Loading... |
| 372 _gen_request(parent_task_id='1d69b9f088008810') | 374 _gen_request(parent_task_id='1d69b9f088008810') |
| 373 | 375 |
| 374 def test_init_new_request_idempotent(self): | 376 def test_init_new_request_idempotent(self): |
| 375 request = mkreq(_gen_request(properties=dict(idempotent=True))) | 377 request = mkreq(_gen_request(properties=dict(idempotent=True))) |
| 376 as_dict = request.to_dict() | 378 as_dict = request.to_dict() |
| 377 self.assertEqual(True, as_dict['properties']['idempotent']) | 379 self.assertEqual(True, as_dict['properties']['idempotent']) |
| 378 # Intentionally hard code the hash value since it has to be deterministic. | 380 # Intentionally hard code the hash value since it has to be deterministic. |
| 379 # Other unit tests should use the calculated value. | 381 # Other unit tests should use the calculated value. |
| 380 # Ensure the algorithm is deterministic. | 382 # Ensure the algorithm is deterministic. |
| 381 self.assertEqual( | 383 self.assertEqual( |
| 382 '411f20b8cda819b5fe47bcf26f5566c37afce0ed', as_dict['properties_hash']) | 384 'ca5c7327e43431514472b081b0bbeb62dc1bd8e9', as_dict['properties_hash']) |
| 383 | 385 |
| 384 def test_init_new_request_bot_service_account(self): | 386 def test_init_new_request_bot_service_account(self): |
| 385 request = mkreq(_gen_request(service_account_token='bot')) | 387 request = mkreq(_gen_request(service_account_token='bot')) |
| 386 as_dict = request.to_dict() | 388 as_dict = request.to_dict() |
| 387 self.assertEqual('bot', as_dict['service_account']) | 389 self.assertEqual('bot', as_dict['service_account']) |
| 388 self.assertIn(u'service_account:bot', as_dict['tags']) | 390 self.assertIn(u'service_account:bot', as_dict['tags']) |
| 389 | 391 |
| 390 def test_duped(self): | 392 def test_duped(self): |
| 391 # Two TestRequest with the same properties. | 393 # Two TestRequest with the same properties. |
| 392 request_1 = mkreq(_gen_request(properties=dict(idempotent=True))) | 394 request_1 = mkreq(_gen_request(properties=dict(idempotent=True))) |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 578 'execution_timeout_secs': 30, | 580 'execution_timeout_secs': 30, |
| 579 'extra_args': [], | 581 'extra_args': [], |
| 580 'grace_period_secs': 30, | 582 'grace_period_secs': 30, |
| 581 'idempotent': False, | 583 'idempotent': False, |
| 582 'inputs_ref': { | 584 'inputs_ref': { |
| 583 'isolated': None, | 585 'isolated': None, |
| 584 'isolatedserver': 'https://isolateserver.appspot.com', | 586 'isolatedserver': 'https://isolateserver.appspot.com', |
| 585 'namespace': 'default-gzip', | 587 'namespace': 'default-gzip', |
| 586 }, | 588 }, |
| 587 'io_timeout_secs': None, | 589 'io_timeout_secs': None, |
| 590 'outputs': [], |
| 588 } | 591 } |
| 589 # Differences from new_request() are: | 592 # Differences from new_request() are: |
| 590 # - parent_task_id was reset to None. | 593 # - parent_task_id was reset to None. |
| 591 # - tag 'user:' was replaced | 594 # - tag 'user:' was replaced |
| 592 # - user was replaced. | 595 # - user was replaced. |
| 593 expected_request = { | 596 expected_request = { |
| 594 'authenticated': auth_testing.DEFAULT_MOCKED_IDENTITY, | 597 'authenticated': auth_testing.DEFAULT_MOCKED_IDENTITY, |
| 595 'name': u'Request name (Retry #1)', | 598 'name': u'Request name (Retry #1)', |
| 596 'parent_task_id': None, | 599 'parent_task_id': None, |
| 597 'priority': 49, | 600 'priority': 49, |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 654 ndb.Key(task_request.TaskRequest, 0x7f14acec2fcfffff), | 657 ndb.Key(task_request.TaskRequest, 0x7f14acec2fcfffff), |
| 655 task_request.request_id_to_key(0xeb5313d0300000)) | 658 task_request.request_id_to_key(0xeb5313d0300000)) |
| 656 | 659 |
| 657 | 660 |
| 658 if __name__ == '__main__': | 661 if __name__ == '__main__': |
| 659 if '-v' in sys.argv: | 662 if '-v' in sys.argv: |
| 660 unittest.TestCase.maxDiff = None | 663 unittest.TestCase.maxDiff = None |
| 661 logging.basicConfig( | 664 logging.basicConfig( |
| 662 level=logging.DEBUG if '-v' in sys.argv else logging.ERROR) | 665 level=logging.DEBUG if '-v' in sys.argv else logging.ERROR) |
| 663 unittest.main() | 666 unittest.main() |
| OLD | NEW |