Chromium Code Reviews| Index: appengine/swarming/swarming_bot/bot_code/remote_client_test.py |
| diff --git a/appengine/swarming/swarming_bot/bot_code/remote_client_test.py b/appengine/swarming/swarming_bot/bot_code/remote_client_test.py |
| index 7bfe8f6244ded3e230a8d877b3da8efe114c6070..b264ccc2215e8a225934e9187cabf4c857cc4f69 100755 |
| --- a/appengine/swarming/swarming_bot/bot_code/remote_client_test.py |
| +++ b/appengine/swarming/swarming_bot/bot_code/remote_client_test.py |
| @@ -77,6 +77,44 @@ class TestRemoteClient(auto_stub.TestCase): |
| self.mock(time, 'time', lambda: 103500) |
| self.assertEqual({'Now': '103500'}, c.get_authentication_headers()) |
| + def test_mint_oauth_token_ok(self): |
|
Vadim Sh.
2017/06/29 04:58:44
typo catching tests
RemoteClient seems to be not
dnj
2017/06/29 16:29:26
Acknowledged.
|
| + fake_resp = { |
| + 'service_account': 'blah@example.com', |
| + 'access_token': 'abc', |
| + 'expiry': 12345, |
| + } |
| + |
| + c = remote_client.RemoteClientNative('http://localhost:1', None) |
| + def mocked_call(url_path, data): |
| + self.assertEqual('/swarming/api/v1/bot/oauth_token', url_path) |
| + self.assertEqual({ |
| + 'account_id': 'account_id', |
| + 'id': 'bot_id', |
| + 'scopes': ['a', 'b'], |
| + 'task_id': 'task_id', |
| + }, data) |
| + return fake_resp |
| + self.mock(c, '_url_read_json', mocked_call) |
| + |
| + resp = c.mint_oauth_token('task_id', 'bot_id', 'account_id', ['a', 'b']) |
| + self.assertEqual(fake_resp, resp) |
| + |
| + def test_mint_oauth_token_transient_err(self): |
| + c = remote_client.RemoteClientNative('http://localhost:1', None) |
| + def mocked_call(*_args, **_kwargs): |
| + return None # that's how net.url_read_json indicates HTTP 500 :-/ |
|
dnj
2017/06/29 16:29:26
Lovely :x
|
| + self.mock(c, '_url_read_json', mocked_call) |
| + with self.assertRaises(remote_client.InternalError): |
| + c.mint_oauth_token('task_id', 'bot_id', 'account_id', ['a', 'b']) |
| + |
| + def test_mint_oauth_token_fatal_err(self): |
| + c = remote_client.RemoteClientNative('http://localhost:1', None) |
| + def mocked_call(*_args, **_kwargs): |
| + return {'error': 'blah'} |
| + self.mock(c, '_url_read_json', mocked_call) |
| + with self.assertRaises(remote_client.MintOAuthTokenError): |
| + c.mint_oauth_token('task_id', 'bot_id', 'account_id', ['a', 'b']) |
| + |
| if __name__ == '__main__': |
| logging.basicConfig( |