| OLD | NEW |
| (Empty) |
| 1 # Copyright 2015 The Chromium Authors. All rights reserved. | |
| 2 # Use of this source code is governed by a BSD-style license that can be | |
| 3 # found in the LICENSE file. | |
| 4 | |
| 5 import unittest | |
| 6 | |
| 7 from infra_libs.ts_mon.common import targets | |
| 8 from infra_libs.ts_mon.protos import metrics_pb2 | |
| 9 | |
| 10 | |
| 11 class DeviceTargetTest(unittest.TestCase): | |
| 12 | |
| 13 def test_populate_target(self): | |
| 14 pb = metrics_pb2.MetricsData() | |
| 15 t = targets.DeviceTarget('reg', 'role', 'net', 'host') | |
| 16 t._populate_target_pb(pb) | |
| 17 self.assertEquals(pb.network_device.metro, 'reg') | |
| 18 self.assertEquals(pb.network_device.role, 'role') | |
| 19 self.assertEquals(pb.network_device.hostgroup, 'net') | |
| 20 self.assertEquals(pb.network_device.hostname, 'host') | |
| 21 self.assertEquals(pb.network_device.realm, 'ACQ_CHROME') | |
| 22 self.assertEquals(pb.network_device.alertable, True) | |
| 23 | |
| 24 def test_update_to_dict(self): | |
| 25 target = targets.DeviceTarget('reg', 'role', 'net', 'host') | |
| 26 self.assertEqual({ | |
| 27 'region': 'reg', | |
| 28 'role': 'role', | |
| 29 'network': 'net', | |
| 30 'hostname': 'host'}, target.to_dict()) | |
| 31 target.update({'region': 'other', 'hostname': 'guest'}) | |
| 32 self.assertEqual({ | |
| 33 'region': 'other', | |
| 34 'role': 'role', | |
| 35 'network': 'net', | |
| 36 'hostname': 'guest'}, target.to_dict()) | |
| 37 | |
| 38 def test_update_private_field(self): | |
| 39 target = targets.DeviceTarget('reg', 'role', 'net', 'host') | |
| 40 with self.assertRaises(AttributeError): | |
| 41 target.update({'realm': 'boo'}) | |
| 42 | |
| 43 def test_update_nonexistent_field(self): | |
| 44 target = targets.DeviceTarget('reg', 'role', 'net', 'host') | |
| 45 # Simulate a bug: exporting a non-existent field. | |
| 46 target._fields += ('bad',) | |
| 47 with self.assertRaises(AttributeError): | |
| 48 target.update({'bad': 'boo'}) | |
| 49 | |
| 50 | |
| 51 class TaskTargetTest(unittest.TestCase): | |
| 52 | |
| 53 def test_populate_target(self): | |
| 54 pb = metrics_pb2.MetricsData() | |
| 55 t = targets.TaskTarget('serv', 'job', 'reg', 'host') | |
| 56 t._populate_target_pb(pb) | |
| 57 self.assertEquals(pb.task.service_name, 'serv') | |
| 58 self.assertEquals(pb.task.job_name, 'job') | |
| 59 self.assertEquals(pb.task.data_center, 'reg') | |
| 60 self.assertEquals(pb.task.host_name, 'host') | |
| 61 self.assertEquals(pb.task.task_num, 0) | |
| 62 | |
| 63 def test_update_to_dict(self): | |
| 64 target = targets.TaskTarget('serv', 'job', 'reg', 'host', 5) | |
| 65 self.assertEqual({ | |
| 66 'service_name': 'serv', | |
| 67 'job_name': 'job', | |
| 68 'region': 'reg', | |
| 69 'hostname': 'host', | |
| 70 'task_num': 5}, target.to_dict()) | |
| 71 target.update({'region': 'other', 'hostname': 'guest'}) | |
| 72 self.assertEqual({ | |
| 73 'service_name': 'serv', | |
| 74 'job_name': 'job', | |
| 75 'region': 'other', | |
| 76 'hostname': 'guest', | |
| 77 'task_num': 5}, target.to_dict()) | |
| 78 | |
| 79 def test_update_private_field(self): | |
| 80 target = targets.TaskTarget('serv', 'job', 'reg', 'host') | |
| 81 with self.assertRaises(AttributeError): | |
| 82 target.update({'realm': 'boo'}) | |
| 83 | |
| 84 def test_update_nonexistent_field(self): | |
| 85 target = targets.TaskTarget('serv', 'job', 'reg', 'host') | |
| 86 # Simulate a bug: exporting a non-existent field. | |
| 87 target._fields += ('bad',) | |
| 88 with self.assertRaises(AttributeError): | |
| 89 target.update({'bad': 'boo'}) | |
| OLD | NEW |