def test_poll_server_sleep(self): slept = [] self.mock(time, 'sleep', slept.append) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', self.fail) self.expected_requests([ ( 'https://localhost:1/auth/api/v1/accounts/self/xsrf_token', { 'data': {}, 'headers': { 'X-XSRF-Token-Request': '1' } }, { 'xsrf_token': 'token' }, ), ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.attributes, 'headers': { 'X-XSRF-Token': 'token' }, }, { 'cmd': 'sleep', 'duration': 1.24, }, ), ]) self.assertFalse(bot_main.poll_server(self.bot)) self.assertEqual([1.24], slept)
def test_poll_server_sleep(self): slept = [] self.mock(time, 'sleep', slept.append) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', self.fail) self.expected_requests( [ ( 'https://localhost:1/auth/api/v1/accounts/self/xsrf_token', {'data': {}, 'headers': {'X-XSRF-Token-Request': '1'}}, {'xsrf_token': 'token'}, ), ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.attributes, 'headers': {'X-XSRF-Token': 'token'}, }, { 'cmd': 'sleep', 'duration': 1.24, }, ), ]) self.assertFalse(bot_main.poll_server(self.bot)) self.assertEqual([1.24], slept)
def test_poll_server_restart_load_test(self): os.environ['SWARMING_LOAD_TEST'] = '1' self.mock(time, 'sleep', self.fail) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', self.fail) self.mock(self.bot, 'restart', self.fail) self.expected_requests([ ( 'https://localhost:1/auth/api/v1/accounts/self/xsrf_token', { 'data': {}, 'headers': { 'X-XSRF-Token-Request': '1' } }, { 'xsrf_token': 'token' }, ), ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.attributes, 'headers': { 'X-XSRF-Token': 'token' }, }, { 'cmd': 'restart', 'message': 'Please die now', }, ), ]) self.assertTrue(bot_main.poll_server(self.bot))
def test_poll_server_restart_load_test(self): os.environ['SWARMING_LOAD_TEST'] = '1' self.mock(time, 'sleep', self.fail) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', self.fail) self.mock(self.bot, 'restart', self.fail) self.expected_requests( [ ( 'https://localhost:1/auth/api/v1/accounts/self/xsrf_token', {'data': {}, 'headers': {'X-XSRF-Token-Request': '1'}}, {'xsrf_token': 'token'}, ), ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.attributes, 'headers': {'X-XSRF-Token': 'token'}, }, { 'cmd': 'restart', 'message': 'Please die now', }, ), ]) self.assertTrue(bot_main.poll_server(self.bot))
def test_poll_server_update(self): update = [] self.mock(time, 'sleep', self.fail) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', lambda *args: update.append(args)) self.expected_requests([ ( 'https://localhost:1/auth/api/v1/accounts/self/xsrf_token', { 'data': {}, 'headers': { 'X-XSRF-Token-Request': '1' } }, { 'xsrf_token': 'token' }, ), ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.attributes, 'headers': { 'X-XSRF-Token': 'token' }, }, { 'cmd': 'update', 'version': '123', }, ), ]) self.assertTrue(bot_main.poll_server(self.bot)) self.assertEqual([(self.bot, '123')], update)
def test_poll_server_restart_load_test(self): os.environ['SWARMING_LOAD_TEST'] = '1' bit = threading.Event() self.mock(bit, 'wait', self.fail) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', self.fail) self.mock(self.bot, 'restart', self.fail) self.expected_requests( [ ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.attributes, 'follow_redirects': False, 'headers': {}, 'timeout': remote_client.NET_CONNECTION_TIMEOUT_SEC, }, { 'cmd': 'restart', 'message': 'Please die now', }, ), ]) self.assertTrue(bot_main.poll_server(self.bot, bit, 0))
def test_poll_server_run(self): manifest = [] self.mock(time, 'sleep', self.fail) self.mock(bot_main, 'run_manifest', lambda *args: manifest.append(args)) self.mock(bot_main, 'update_bot', self.fail) self.expected_requests( [ ( 'https://localhost:1/auth/api/v1/accounts/self/xsrf_token', {'data': {}, 'headers': {'X-XSRF-Token-Request': '1'}}, {'xsrf_token': 'token'}, ), ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.bot._attributes, 'headers': {'X-XSRF-Token': 'token'}, }, { 'cmd': 'run', 'manifest': {'foo': 'bar'}, }, ), ]) self.assertTrue(bot_main.poll_server(self.bot)) expected = [(self.bot, {'foo': 'bar'}, time.time())] self.assertEqual(expected, manifest)
def test_poll_server_run(self): manifest = [] clean = [] bit = threading.Event() self.mock(bit, 'wait', self.fail) self.mock(bot_main, 'run_manifest', lambda *args: manifest.append(args)) self.mock(bot_main, 'clean_cache', lambda *args: clean.append(args)) self.mock(bot_main, 'update_bot', self.fail) self.expected_requests( [ ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.bot._attributes, 'follow_redirects': False, 'headers': {}, 'timeout': remote_client.NET_CONNECTION_TIMEOUT_SEC, }, { 'cmd': 'run', 'manifest': {'foo': 'bar'}, }, ), ]) self.assertTrue(bot_main.poll_server(self.bot, bit, 0)) expected = [(self.bot, {'foo': 'bar'}, time.time())] self.assertEqual(expected, manifest) expected = [(self.bot,)] self.assertEqual(expected, clean)
def test_poll_server_restart(self): restart = [] bit = threading.Event() self.mock(bit, 'wait', self.fail) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', self.fail) self.mock(self.bot, 'restart', lambda *args: restart.append(args)) self.expected_requests( [ ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.attributes, 'follow_redirects': False, 'headers': {}, 'timeout': remote_client.NET_CONNECTION_TIMEOUT_SEC, }, { 'cmd': 'restart', 'message': 'Please die now', }, ), ]) self.assertTrue(bot_main.poll_server(self.bot, bit, 0)) self.assertEqual([('Please die now',)], restart)
def test_poll_server_sleep_with_auth(self): slept = [] bit = threading.Event() self.mock(bit, 'wait', slept.append) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', self.fail) self.bot = self.make_bot(lambda: ({'A': 'a'}, time.time() + 3600)) self.expected_requests( [ ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.attributes, 'follow_redirects': False, 'headers': {'A': 'a'}, 'timeout': remote_client.NET_CONNECTION_TIMEOUT_SEC, }, { 'cmd': 'sleep', 'duration': 1.24, }, ), ]) self.assertFalse(bot_main.poll_server(self.bot, bit, 0)) self.assertEqual([1.24], slept)
def test_poll_server_sleep(self): slept = [] bit = threading.Event() self.mock(bit, 'wait', slept.append) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', self.fail) from config import bot_config called = [] self.mock(bot_config, 'on_bot_idle', lambda _bot, _s: called.append(1)) self.expected_requests( [ ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.attributes, 'follow_redirects': False, 'headers': {}, 'timeout': remote_client.NET_CONNECTION_TIMEOUT_SEC, }, { 'cmd': 'sleep', 'duration': 1.24, }, ), ]) self.assertFalse(bot_main.poll_server(self.bot, bit, 2)) self.assertEqual([1.24], slept) self.assertEqual([1], called)
def test_poll_server_update(self): update = [] self.mock(time, 'sleep', self.fail) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', lambda *args: update.append(args)) self.expected_requests( [ ( 'https://localhost:1/auth/api/v1/accounts/self/xsrf_token', {'data': {}, 'headers': {'X-XSRF-Token-Request': '1'}}, {'xsrf_token': 'token'}, ), ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.attributes, 'headers': {'X-XSRF-Token': 'token'}, }, { 'cmd': 'update', 'version': '123', }, ), ]) self.assertTrue(bot_main.poll_server(self.bot)) self.assertEqual([(self.bot, '123')], update)
def test_poll_server_run(self): manifest = [] bit = threading.Event() self.mock(bit, 'wait', self.fail) self.mock(bot_main, 'run_manifest', lambda *args: manifest.append(args)) self.mock(bot_main, 'update_bot', self.fail) self.expected_requests([ ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.bot._attributes }, { 'cmd': 'run', 'manifest': { 'foo': 'bar' }, }, ), ]) self.assertTrue(bot_main.poll_server(self.bot, bit)) expected = [(self.bot, {'foo': 'bar'}, time.time())] self.assertEqual(expected, manifest)
def test_poll_server_restart(self): restart = [] self.mock(time, 'sleep', self.fail) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', self.fail) self.mock(self.bot, 'restart', lambda *args: restart.append(args)) self.expected_requests( [ ( 'https://localhost:1/auth/api/v1/accounts/self/xsrf_token', {'data': {}, 'headers': {'X-XSRF-Token-Request': '1'}}, {'xsrf_token': 'token'}, ), ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.attributes, 'headers': {'X-XSRF-Token': 'token'}, }, { 'cmd': 'restart', 'message': 'Please die now', }, ), ]) self.assertTrue(bot_main.poll_server(self.bot)) self.assertEqual([('Please die now',)], restart)
def test_poll_server_sleep(self): slept = [] bit = threading.Event() self.mock(bit, 'wait', slept.append) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', self.fail) self.expected_requests( [ ( 'https://localhost:1/swarming/api/v1/bot/poll', {'data': self.attributes}, { 'cmd': 'sleep', 'duration': 1.24, }, ), ]) self.assertFalse(bot_main.poll_server(self.bot, bit)) self.assertEqual([1.24], slept)
def test_poll_server_update(self): update = [] bit = threading.Event() self.mock(bit, 'wait', self.fail) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', lambda *args: update.append(args)) self.expected_requests( [ ( 'https://localhost:1/swarming/api/v1/bot/poll', {'data': self.attributes}, { 'cmd': 'update', 'version': '123', }, ), ]) self.assertTrue(bot_main.poll_server(self.bot, bit)) self.assertEqual([(self.bot, '123')], update)
def test_poll_server_update(self): update = [] bit = threading.Event() self.mock(bit, 'wait', self.fail) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', lambda *args: update.append(args)) self.expected_requests([ ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.attributes }, { 'cmd': 'update', 'version': '123', }, ), ]) self.assertTrue(bot_main.poll_server(self.bot, bit)) self.assertEqual([(self.bot, '123')], update)
def test_poll_server_restart_load_test(self): os.environ['SWARMING_LOAD_TEST'] = '1' bit = threading.Event() self.mock(bit, 'wait', self.fail) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', self.fail) self.mock(self.bot, 'restart', self.fail) self.expected_requests([ ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.attributes, }, { 'cmd': 'restart', 'message': 'Please die now', }, ), ]) self.assertTrue(bot_main.poll_server(self.bot, bit))
def test_poll_server_restart(self): restart = [] bit = threading.Event() self.mock(bit, 'wait', self.fail) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', self.fail) self.mock(self.bot, 'restart', lambda *args: restart.append(args)) self.expected_requests( [ ( 'https://localhost:1/swarming/api/v1/bot/poll', {'data': self.attributes}, { 'cmd': 'restart', 'message': 'Please die now', }, ), ]) self.assertTrue(bot_main.poll_server(self.bot, bit)) self.assertEqual([('Please die now',)], restart)
def test_poll_server_run(self): manifest = [] bit = threading.Event() self.mock(bit, 'wait', self.fail) self.mock(bot_main, 'run_manifest', lambda *args: manifest.append(args)) self.mock(bot_main, 'update_bot', self.fail) self.expected_requests( [ ( 'https://localhost:1/swarming/api/v1/bot/poll', {'data': self.bot._attributes}, { 'cmd': 'run', 'manifest': {'foo': 'bar'}, }, ), ]) self.assertTrue(bot_main.poll_server(self.bot, bit)) expected = [(self.bot, {'foo': 'bar'}, time.time())] self.assertEqual(expected, manifest)
def test_poll_server_sleep(self): slept = [] bit = threading.Event() self.mock(bit, 'wait', slept.append) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', self.fail) self.expected_requests([ ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.attributes }, { 'cmd': 'sleep', 'duration': 1.24, }, ), ]) self.assertFalse(bot_main.poll_server(self.bot, bit)) self.assertEqual([1.24], slept)
def test_poll_server_restart(self): restart = [] bit = threading.Event() self.mock(bit, 'wait', self.fail) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', self.fail) self.mock(self.bot, 'restart', lambda *args: restart.append(args)) self.expected_requests([ ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.attributes }, { 'cmd': 'restart', 'message': 'Please die now', }, ), ]) self.assertTrue(bot_main.poll_server(self.bot, bit)) self.assertEqual([('Please die now', )], restart)
def test_poll_server_run(self): manifest = [] self.mock(time, 'sleep', self.fail) self.mock(bot_main, 'run_manifest', lambda *args: manifest.append(args)) self.mock(bot_main, 'update_bot', self.fail) self.expected_requests([ ( 'https://localhost:1/auth/api/v1/accounts/self/xsrf_token', { 'data': {}, 'headers': { 'X-XSRF-Token-Request': '1' } }, { 'xsrf_token': 'token' }, ), ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.bot._attributes, 'headers': { 'X-XSRF-Token': 'token' }, }, { 'cmd': 'run', 'manifest': { 'foo': 'bar' }, }, ), ]) self.assertTrue(bot_main.poll_server(self.bot)) expected = [(self.bot, {'foo': 'bar'}, time.time())] self.assertEqual(expected, manifest)
def test_poll_server_restart_load_test(self): os.environ['SWARMING_LOAD_TEST'] = '1' bit = threading.Event() self.mock(bit, 'wait', self.fail) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', self.fail) self.mock(self.bot, 'restart', self.fail) self.expected_requests( [ ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.attributes, }, { 'cmd': 'restart', 'message': 'Please die now', }, ), ]) self.assertTrue(bot_main.poll_server(self.bot, bit))
def test_poll_server_restart_load_test(self): os.environ["SWARMING_LOAD_TEST"] = "1" bit = threading.Event() self.mock(bit, "wait", self.fail) self.mock(bot_main, "run_manifest", self.fail) self.mock(bot_main, "update_bot", self.fail) self.mock(self.bot, "restart", self.fail) self.expected_requests( [ ( "https://localhost:1/auth/api/v1/accounts/self/xsrf_token", {"data": {}, "headers": {"X-XSRF-Token-Request": "1"}}, {"xsrf_token": "token"}, ), ( "https://localhost:1/swarming/api/v1/bot/poll", {"data": self.attributes, "headers": {"X-XSRF-Token": "token"}}, {"cmd": "restart", "message": "Please die now"}, ), ] ) self.assertTrue(bot_main.poll_server(self.bot, bit))
def test_poll_server_update(self): update = [] bit = threading.Event() self.mock(bit, "wait", self.fail) self.mock(bot_main, "run_manifest", self.fail) self.mock(bot_main, "update_bot", lambda *args: update.append(args)) self.expected_requests( [ ( "https://localhost:1/auth/api/v1/accounts/self/xsrf_token", {"data": {}, "headers": {"X-XSRF-Token-Request": "1"}}, {"xsrf_token": "token"}, ), ( "https://localhost:1/swarming/api/v1/bot/poll", {"data": self.attributes, "headers": {"X-XSRF-Token": "token"}}, {"cmd": "update", "version": "123"}, ), ] ) self.assertTrue(bot_main.poll_server(self.bot, bit)) self.assertEqual([(self.bot, "123")], update)
def test_poll_server_sleep(self): slept = [] bit = threading.Event() self.mock(bit, "wait", slept.append) self.mock(bot_main, "run_manifest", self.fail) self.mock(bot_main, "update_bot", self.fail) self.expected_requests( [ ( "https://localhost:1/auth/api/v1/accounts/self/xsrf_token", {"data": {}, "headers": {"X-XSRF-Token-Request": "1"}}, {"xsrf_token": "token"}, ), ( "https://localhost:1/swarming/api/v1/bot/poll", {"data": self.attributes, "headers": {"X-XSRF-Token": "token"}}, {"cmd": "sleep", "duration": 1.24}, ), ] ) self.assertFalse(bot_main.poll_server(self.bot, bit)) self.assertEqual([1.24], slept)
def test_poll_server_restart(self): restart = [] bit = threading.Event() self.mock(bit, 'wait', self.fail) self.mock(bot_main, 'run_manifest', self.fail) self.mock(bot_main, 'update_bot', self.fail) self.mock(self.bot, 'restart', lambda *args: restart.append(args)) self.expected_requests([ ( 'https://localhost:1/auth/api/v1/accounts/self/xsrf_token', { 'data': {}, 'headers': { 'X-XSRF-Token-Request': '1' } }, { 'xsrf_token': 'token' }, ), ( 'https://localhost:1/swarming/api/v1/bot/poll', { 'data': self.attributes, 'headers': { 'X-XSRF-Token': 'token' }, }, { 'cmd': 'restart', 'message': 'Please die now', }, ), ]) self.assertTrue(bot_main.poll_server(self.bot, bit)) self.assertEqual([('Please die now', )], restart)
def test_poll_server_run(self): manifest = [] bit = threading.Event() self.mock(bit, "wait", self.fail) self.mock(bot_main, "run_manifest", lambda *args: manifest.append(args)) self.mock(bot_main, "update_bot", self.fail) self.expected_requests( [ ( "https://localhost:1/auth/api/v1/accounts/self/xsrf_token", {"data": {}, "headers": {"X-XSRF-Token-Request": "1"}}, {"xsrf_token": "token"}, ), ( "https://localhost:1/swarming/api/v1/bot/poll", {"data": self.bot._attributes, "headers": {"X-XSRF-Token": "token"}}, {"cmd": "run", "manifest": {"foo": "bar"}}, ), ] ) self.assertTrue(bot_main.poll_server(self.bot, bit)) expected = [(self.bot, {"foo": "bar"}, time.time())] self.assertEqual(expected, manifest)