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 |