OLD | NEW |
1 # -*- encoding:utf-8 -*- | 1 # -*- encoding:utf-8 -*- |
2 # Copyright 2015 The Chromium Authors. All rights reserved. | 2 # Copyright 2015 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 import unittest | 6 import unittest |
7 | 7 |
8 from infra_libs import event_mon | 8 from infra_libs import event_mon |
9 from infra_libs.event_mon import config, router | 9 from infra_libs.event_mon import config, router |
10 from infra_libs.event_mon import monitoring | 10 from infra_libs.event_mon import monitoring |
11 from infra_libs.event_mon.protos.chrome_infra_log_pb2 import ( | 11 from infra_libs.event_mon.protos.chrome_infra_log_pb2 import ( |
12 ChromeInfraEvent, ServiceEvent, BuildEvent) | 12 ChromeInfraEvent, ServiceEvent, BuildEvent) |
13 from infra_libs.event_mon.protos.log_request_lite_pb2 import LogRequestLite | 13 from infra_libs.event_mon.protos.log_request_lite_pb2 import LogRequestLite |
| 14 from infra_libs.event_mon.protos.goma_stats_pb2 import GomaStats |
14 | 15 |
15 | 16 |
16 class ConstantTest(unittest.TestCase): | 17 class ConstantTest(unittest.TestCase): |
17 def test_constants(self): | 18 def test_constants(self): |
18 # Make sure constants have not been renamed since they're part of the API. | 19 # Make sure constants have not been renamed since they're part of the API. |
19 self.assertTrue(event_mon.EVENT_TYPES) | 20 self.assertTrue(event_mon.EVENT_TYPES) |
20 self.assertTrue(event_mon.TIMESTAMP_KINDS) | 21 self.assertTrue(event_mon.TIMESTAMP_KINDS) |
21 self.assertTrue(event_mon.BUILD_EVENT_TYPES) | 22 self.assertTrue(event_mon.BUILD_EVENT_TYPES) |
22 self.assertTrue(event_mon.BUILD_RESULTS) | 23 self.assertTrue(event_mon.BUILD_RESULTS) |
23 | 24 |
(...skipping 822 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
846 | 847 |
847 # Check that source_extension deserializes to the right thing. | 848 # Check that source_extension deserializes to the right thing. |
848 event = ChromeInfraEvent.FromString(log_event.source_extension) | 849 event = ChromeInfraEvent.FromString(log_event.source_extension) |
849 self.assertTrue(event.HasField('build_event')) | 850 self.assertTrue(event.HasField('build_event')) |
850 self.assertEquals(event.build_event.type, BuildEvent.BUILD) | 851 self.assertEquals(event.build_event.type, BuildEvent.BUILD) |
851 self.assertEquals(event.build_event.host_name, hostname) | 852 self.assertEquals(event.build_event.host_name, hostname) |
852 self.assertEquals(event.build_event.build_name, build_name) | 853 self.assertEquals(event.build_event.build_name, build_name) |
853 self.assertEquals(event.event_source.service_name, service_name) | 854 self.assertEquals(event.event_source.service_name, service_name) |
854 self.assertEquals(event.build_event.extra_result_code, ['result']) | 855 self.assertEquals(event.build_event.extra_result_code, ['result']) |
855 | 856 |
| 857 def test_get_build_event_with_goma_stats(self): |
| 858 hostname = 'bot.host.name' |
| 859 build_name = 'build_name' |
| 860 service_name = 'my nice service' |
| 861 goma_stats = GomaStats() |
| 862 goma_stats.request_stats.total = 42 |
| 863 |
| 864 log_event = monitoring.get_build_event( |
| 865 'BUILD', hostname, build_name, service_name=service_name, |
| 866 goma_stats=goma_stats).log_event() |
| 867 |
| 868 self.assertIsInstance(log_event, LogRequestLite.LogEventLite) |
| 869 self.assertTrue(log_event.HasField('event_time_ms')) |
| 870 self.assertTrue(log_event.HasField('source_extension')) |
| 871 |
| 872 # Check that source_extension deserializes to the right thing. |
| 873 event = ChromeInfraEvent.FromString(log_event.source_extension) |
| 874 self.assertTrue(event.HasField('build_event')) |
| 875 self.assertEquals(event.build_event.type, BuildEvent.BUILD) |
| 876 self.assertEquals(event.build_event.host_name, hostname) |
| 877 self.assertEquals(event.build_event.build_name, build_name) |
| 878 self.assertEquals(event.event_source.service_name, service_name) |
| 879 self.assertEquals(event.build_event.goma_stats, goma_stats) |
| 880 |
| 881 def test_get_build_event_invalid_goma_stats(self): |
| 882 hostname = 'bot.host.name' |
| 883 build_name = 'build_name' |
| 884 service_name = 'my nice service' |
| 885 |
| 886 log_event = monitoring.get_build_event( |
| 887 'BUILD', hostname, build_name, service_name=service_name, |
| 888 goma_stats='what-is-a-string-doing-here?').log_event() |
| 889 |
| 890 self.assertIsInstance(log_event, LogRequestLite.LogEventLite) |
| 891 self.assertTrue(log_event.HasField('event_time_ms')) |
| 892 self.assertTrue(log_event.HasField('source_extension')) |
| 893 |
| 894 # Check that source_extension deserializes to the right thing. |
| 895 event = ChromeInfraEvent.FromString(log_event.source_extension) |
| 896 self.assertTrue(event.HasField('build_event')) |
| 897 self.assertEquals(event.build_event.type, BuildEvent.BUILD) |
| 898 self.assertEquals(event.build_event.host_name, hostname) |
| 899 self.assertEquals(event.build_event.build_name, build_name) |
| 900 self.assertEquals(event.event_source.service_name, service_name) |
| 901 self.assertFalse(event.build_event.HasField('goma_stats')) |
| 902 |
856 | 903 |
857 class SendBuildEventTest(unittest.TestCase): | 904 class SendBuildEventTest(unittest.TestCase): |
858 def setUp(self): | 905 def setUp(self): |
859 event_mon.setup_monitoring(run_type='dry') | 906 event_mon.setup_monitoring(run_type='dry') |
860 | 907 |
861 def tearDown(self): | 908 def tearDown(self): |
862 event_mon.close() | 909 event_mon.close() |
863 | 910 |
864 def test_send_build_event_smoke(self): | 911 def test_send_build_event_smoke(self): |
865 self.assertIsInstance(config._router, router._Router) | 912 self.assertIsInstance(config._router, router._Router) |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
904 'BUILD', | 951 'BUILD', |
905 'bot2.host.name', | 952 'bot2.host.name', |
906 'build_name2', | 953 'build_name2', |
907 build_number=1, | 954 build_number=1, |
908 build_scheduling_time=123456789, | 955 build_scheduling_time=123456789, |
909 result='FAILURE', | 956 result='FAILURE', |
910 timestamp_kind='POINT', | 957 timestamp_kind='POINT', |
911 event_timestamp=None), | 958 event_timestamp=None), |
912 ] | 959 ] |
913 self.assertTrue(monitoring.send_events(events)) | 960 self.assertTrue(monitoring.send_events(events)) |
OLD | NEW |