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

Side by Side Diff: infra_libs/event_mon/test/monitoring_test.py

Issue 1426953002: event_mon: support for GomaStats (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@send-event-default-event
Patch Set: Fixed nit Created 5 years, 1 month 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
« no previous file with comments | « infra_libs/event_mon/monitoring.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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))
OLDNEW
« no previous file with comments | « infra_libs/event_mon/monitoring.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698