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

Side by Side Diff: appengine/swarming/server/bot_management_test.py

Issue 2661173004: Make deleted bots still show up when searched for by id (Closed)
Patch Set: Don't forget MP stuff Created 3 years, 10 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 # 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
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
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
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
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()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698