| 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 hashlib | 7 import hashlib |
| 8 import logging | 8 import logging |
| 9 import sys | 9 import sys |
| 10 import unittest | 10 import unittest |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 now = datetime.datetime(2010, 1, 2, 3, 4, 5, 6) | 38 now = datetime.datetime(2010, 1, 2, 3, 4, 5, 6) |
| 39 self.mock_now(now) | 39 self.mock_now(now) |
| 40 bot_management.bot_event( | 40 bot_management.bot_event( |
| 41 event_type='bot_connected', bot_id='id1', | 41 event_type='bot_connected', bot_id='id1', |
| 42 external_ip='8.8.4.4', authenticated_as='bot:id1.domain', | 42 external_ip='8.8.4.4', authenticated_as='bot:id1.domain', |
| 43 dimensions={'id': ['id1'], 'foo': ['bar']}, state={'ram': 65}, | 43 dimensions={'id': ['id1'], 'foo': ['bar']}, state={'ram': 65}, |
| 44 version=hashlib.sha1().hexdigest(), quarantined=False, task_id=None, | 44 version=hashlib.sha1().hexdigest(), quarantined=False, task_id=None, |
| 45 task_name=None) | 45 task_name=None) |
| 46 | 46 |
| 47 expected = { | 47 expected = { |
| 48 'authenticated_as': 'bot:id1.domain', | 48 'authenticated_as': u'bot:id1.domain', |
| 49 'composite': [8, 2], | 49 'composite': [8, 2], |
| 50 'deleted': False, |
| 50 'dimensions': {u'foo': [u'bar'], u'id': [u'id1']}, | 51 'dimensions': {u'foo': [u'bar'], u'id': [u'id1']}, |
| 51 'external_ip': u'8.8.4.4', | 52 'external_ip': u'8.8.4.4', |
| 52 'first_seen_ts': now, | 53 'first_seen_ts': now, |
| 53 'id': 'id1', | 54 'id': 'id1', |
| 54 'last_seen_ts': now, | 55 'last_seen_ts': now, |
| 55 'lease_id': None, | 56 'lease_id': None, |
| 56 'lease_expiration_ts': None, | 57 'lease_expiration_ts': None, |
| 57 'machine_type': None, | 58 'machine_type': None, |
| 58 'quarantined': False, | 59 'quarantined': False, |
| 59 'state': {u'ram': 65}, | 60 'state': {u'ram': 65}, |
| 60 'task_id': None, | 61 'task_id': None, |
| 61 'task_name': None, | 62 'task_name': None, |
| 62 'version': u'da39a3ee5e6b4b0d3255bfef95601890afd80709', | 63 'version': u'da39a3ee5e6b4b0d3255bfef95601890afd80709', |
| 63 } | 64 } |
| 64 self.assertEqual( | 65 self.assertEqual( |
| 65 expected, bot_management.get_info_key('id1').get().to_dict()) | 66 expected, bot_management.get_info_key('id1').get().to_dict()) |
| 66 | 67 |
| 67 def test_get_events_query(self): | 68 def test_get_events_query(self): |
| 68 now = datetime.datetime(2010, 1, 2, 3, 4, 5, 6) | 69 now = datetime.datetime(2010, 1, 2, 3, 4, 5, 6) |
| 69 self.mock_now(now) | 70 self.mock_now(now) |
| 70 bot_management.bot_event( | 71 bot_management.bot_event( |
| 71 event_type='bot_connected', bot_id='id1', | 72 event_type='bot_connected', bot_id='id1', |
| 72 external_ip='8.8.4.4', authenticated_as='bot:id1.domain', | 73 external_ip='8.8.4.4', authenticated_as='bot:id1.domain', |
| 73 dimensions={'id': ['id1'], 'foo': ['bar']}, state={'ram': 65}, | 74 dimensions={'id': ['id1'], 'foo': ['bar']}, state={'ram': 65}, |
| 74 version=hashlib.sha1().hexdigest(), quarantined=False, task_id=None, | 75 version=hashlib.sha1().hexdigest(), quarantined=False, task_id=None, |
| 75 task_name=None) | 76 task_name=None) |
| 76 expected = [ | 77 expected = [ |
| 77 { | 78 { |
| 78 'authenticated_as': 'bot:id1.domain', | 79 'authenticated_as': u'bot:id1.domain', |
| 79 'dimensions': {u'foo': [u'bar'], u'id': [u'id1']}, | 80 'dimensions': {u'foo': [u'bar'], u'id': [u'id1']}, |
| 80 'event_type': u'bot_connected', | 81 'event_type': u'bot_connected', |
| 81 'external_ip': u'8.8.4.4', | 82 'external_ip': u'8.8.4.4', |
| 82 'lease_id': None, | 83 'lease_id': None, |
| 83 'lease_expiration_ts': None, | 84 'lease_expiration_ts': None, |
| 84 'machine_type': None, | 85 'machine_type': None, |
| 85 'message': None, | 86 'message': None, |
| 86 'quarantined': False, | 87 'quarantined': False, |
| 87 'state': {u'ram': 65}, | 88 'state': {u'ram': 65}, |
| 88 'task_id': None, | 89 'task_id': None, |
| (...skipping 10 matching lines...) Expand all Loading... |
| 99 self.mock_now(now) | 100 self.mock_now(now) |
| 100 bot_management.bot_event( | 101 bot_management.bot_event( |
| 101 event_type='request_sleep', bot_id='id1', | 102 event_type='request_sleep', bot_id='id1', |
| 102 external_ip='8.8.4.4', authenticated_as='bot:id1.domain', | 103 external_ip='8.8.4.4', authenticated_as='bot:id1.domain', |
| 103 dimensions={'id': ['id1'], 'foo': ['bar']}, state={'ram': 65}, | 104 dimensions={'id': ['id1'], 'foo': ['bar']}, state={'ram': 65}, |
| 104 version=hashlib.sha1().hexdigest(), quarantined=True, task_id=None, | 105 version=hashlib.sha1().hexdigest(), quarantined=True, task_id=None, |
| 105 task_name=None) | 106 task_name=None) |
| 106 | 107 |
| 107 # Assert that BotInfo was updated too. | 108 # Assert that BotInfo was updated too. |
| 108 expected = { | 109 expected = { |
| 109 'authenticated_as': 'bot:id1.domain', | 110 'authenticated_as': u'bot:id1.domain', |
| 110 'composite': [4, 2], | 111 'composite': [4, 2], |
| 112 'deleted': False, |
| 111 'dimensions': {u'foo': [u'bar'], u'id': [u'id1']}, | 113 'dimensions': {u'foo': [u'bar'], u'id': [u'id1']}, |
| 112 'external_ip': u'8.8.4.4', | 114 'external_ip': u'8.8.4.4', |
| 113 'first_seen_ts': now, | 115 'first_seen_ts': now, |
| 114 'id': 'id1', | 116 'id': 'id1', |
| 115 'last_seen_ts': now, | 117 'last_seen_ts': now, |
| 116 'lease_id': None, | 118 'lease_id': None, |
| 117 'lease_expiration_ts': None, | 119 'lease_expiration_ts': None, |
| 118 'machine_type': None, | 120 'machine_type': None, |
| 119 'quarantined': True, | 121 'quarantined': True, |
| 120 'state': {u'ram': 65}, | 122 'state': {u'ram': 65}, |
| (...skipping 11 matching lines...) Expand all Loading... |
| 132 now = datetime.datetime(2010, 1, 2, 3, 4, 5, 6) | 134 now = datetime.datetime(2010, 1, 2, 3, 4, 5, 6) |
| 133 self.mock_now(now) | 135 self.mock_now(now) |
| 134 bot_management.bot_event( | 136 bot_management.bot_event( |
| 135 event_type='request_task', bot_id='id1', | 137 event_type='request_task', bot_id='id1', |
| 136 external_ip='8.8.4.4', authenticated_as='bot:id1.domain', | 138 external_ip='8.8.4.4', authenticated_as='bot:id1.domain', |
| 137 dimensions={'id': ['id1'], 'foo': ['bar']}, state={'ram': 65}, | 139 dimensions={'id': ['id1'], 'foo': ['bar']}, state={'ram': 65}, |
| 138 version=hashlib.sha1().hexdigest(), quarantined=False, task_id='12311', | 140 version=hashlib.sha1().hexdigest(), quarantined=False, task_id='12311', |
| 139 task_name='yo') | 141 task_name='yo') |
| 140 | 142 |
| 141 expected = { | 143 expected = { |
| 142 'authenticated_as': 'bot:id1.domain', | 144 'authenticated_as': u'bot:id1.domain', |
| 143 'composite': [8, 1], | 145 'composite': [8, 1], |
| 146 'deleted': False, |
| 144 'dimensions': {u'foo': [u'bar'], u'id': [u'id1']}, | 147 'dimensions': {u'foo': [u'bar'], u'id': [u'id1']}, |
| 145 'external_ip': u'8.8.4.4', | 148 'external_ip': u'8.8.4.4', |
| 146 'first_seen_ts': now, | 149 'first_seen_ts': now, |
| 147 'id': 'id1', | 150 'id': 'id1', |
| 148 'last_seen_ts': now, | 151 'last_seen_ts': now, |
| 149 'lease_id': None, | 152 'lease_id': None, |
| 150 'lease_expiration_ts': None, | 153 'lease_expiration_ts': None, |
| 151 'machine_type': None, | 154 'machine_type': None, |
| 152 'quarantined': False, | 155 'quarantined': False, |
| 153 'state': {u'ram': 65}, | 156 'state': {u'ram': 65}, |
| 154 'task_id': u'12311', | 157 'task_id': u'12311', |
| 155 'task_name': u'yo', | 158 'task_name': u'yo', |
| 156 'version': u'da39a3ee5e6b4b0d3255bfef95601890afd80709', | 159 'version': u'da39a3ee5e6b4b0d3255bfef95601890afd80709', |
| 157 } | 160 } |
| 158 bot_info = bot_management.get_info_key('id1').get() | 161 bot_info = bot_management.get_info_key('id1').get() |
| 159 self.assertEqual(expected, bot_info.to_dict()) | 162 self.assertEqual(expected, bot_info.to_dict()) |
| 160 | 163 |
| 161 expected = [ | 164 expected = [ |
| 162 { | 165 { |
| 163 'authenticated_as': 'bot:id1.domain', | 166 'authenticated_as': u'bot:id1.domain', |
| 164 'dimensions': {u'foo': [u'bar'], u'id': [u'id1']}, | 167 'dimensions': {u'foo': [u'bar'], u'id': [u'id1']}, |
| 165 'event_type': u'request_task', | 168 'event_type': u'request_task', |
| 166 'external_ip': u'8.8.4.4', | 169 'external_ip': u'8.8.4.4', |
| 167 'lease_id': None, | 170 'lease_id': None, |
| 168 'lease_expiration_ts': None, | 171 'lease_expiration_ts': None, |
| 169 'machine_type': None, | 172 'machine_type': None, |
| 170 'message': None, | 173 'message': None, |
| 171 'quarantined': False, | 174 'quarantined': False, |
| 172 'state': {u'ram': 65}, | 175 'state': {u'ram': 65}, |
| 173 'task_id': u'12311', | 176 'task_id': u'12311', |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 249 def test_filter_dimensions(self): | 252 def test_filter_dimensions(self): |
| 250 pass # Tested in handlers_endpoints_test | 253 pass # Tested in handlers_endpoints_test |
| 251 | 254 |
| 252 def test_filter_availability(self): | 255 def test_filter_availability(self): |
| 253 pass # Tested in handlers_endpoints_test | 256 pass # Tested in handlers_endpoints_test |
| 254 | 257 |
| 255 if __name__ == '__main__': | 258 if __name__ == '__main__': |
| 256 logging.basicConfig( | 259 logging.basicConfig( |
| 257 level=logging.DEBUG if '-v' in sys.argv else logging.ERROR) | 260 level=logging.DEBUG if '-v' in sys.argv else logging.ERROR) |
| 258 unittest.main() | 261 unittest.main() |
| OLD | NEW |