blob: b4624906fd696646e2b1c593dae58f566fb72e2c [file] [log] [blame]
Xixuan Wu865fa282017-09-05 15:23:19 -07001# Copyright 2017 The Chromium OS 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"""Module for tests for handlers."""
6
Xixuan Wuf856ff12019-05-21 14:09:38 -07007import datetime
8
Xinan Linc61196b2019-08-13 10:37:30 -07009import buildbucket
Craig Bergstrom3212fb42018-04-17 19:24:15 -060010import config_reader
Xixuan Wuf856ff12019-05-21 14:09:38 -070011import constants
Craig Bergstrom3212fb42018-04-17 19:24:15 -060012import file_getter
Xixuan Wuf856ff12019-05-21 14:09:38 -070013import rest_client
Xixuan Wu865fa282017-09-05 15:23:19 -070014import swarming_lib
Xixuan Wuf856ff12019-05-21 14:09:38 -070015import time_converter
Xixuan Wu865fa282017-09-05 15:23:19 -070016
17import webapp2
18
19
Xixuan Wu630415c2019-05-24 14:24:12 -070020class _FakeAFESwarmingAPIHandler(webapp2.RequestHandler):
Xixuan Wu865fa282017-09-05 15:23:19 -070021
22 def get(self):
Craig Bergstrom3212fb42018-04-17 19:24:15 -060023 lab_config = config_reader.LabConfig(config_reader.ConfigReader(
24 file_getter.LAB_CONFIG_FILE))
25 afe_server = lab_config.get_dedicated_afe()
Xixuan Wu5d700dc2018-08-21 15:13:10 -070026 swarming_runner = swarming_lib.SwarmingRunner(
27 afe_server,
Prathmesh Prabhucf670742018-09-27 15:13:48 -070028 swarming_lib.SKYLAB_STAGING_SWARMING_SERVER)
Xixuan Wua17e3282018-08-21 16:11:11 -070029 afe_response = swarming_runner.dummy_run()
30 afe_swarming_task_info = swarming_runner.query_task(afe_response['task_id'])
31 self.response.write(afe_swarming_task_info.name)
32
33
Xixuan Wu630415c2019-05-24 14:24:12 -070034class _FakeSkylabSwarmingAPIHandler(webapp2.RequestHandler):
Xixuan Wua17e3282018-08-21 16:11:11 -070035
36 def get(self):
37 lab_config = config_reader.LabConfig(config_reader.ConfigReader(
38 file_getter.LAB_CONFIG_FILE))
39 afe_server = lab_config.get_dedicated_afe()
40 swarming_runner = swarming_lib.SwarmingRunner(
41 afe_server,
Prathmesh Prabhucf670742018-09-27 15:13:48 -070042 swarming_lib.SKYLAB_STAGING_SWARMING_SERVER)
Xixuan Wua17e3282018-08-21 16:11:11 -070043 skylab_response = swarming_runner.dummy_run(is_skylab=True)
44 skylab_swarming_task_info = swarming_runner.query_task(
45 skylab_response['task_id'], is_skylab=True)
46 self.response.write(skylab_swarming_task_info.name)
Xixuan Wu865fa282017-09-05 15:23:19 -070047
48
Xixuan Wu630415c2019-05-24 14:24:12 -070049class _FakeAFEWithSanityHandler(webapp2.RequestHandler):
Xixuan Wud9dd4742018-08-23 15:57:03 -070050
51 def get(self):
52 lab_config = config_reader.LabConfig(config_reader.ConfigReader(
53 file_getter.LAB_CONFIG_FILE))
54 afe_server = lab_config.get_dedicated_afe()
55 swarming_runner = swarming_lib.SwarmingRunner(
56 afe_server,
Prathmesh Prabhucf670742018-09-27 15:13:48 -070057 swarming_lib.SKYLAB_STAGING_SWARMING_SERVER)
Xixuan Wud9dd4742018-08-23 15:57:03 -070058 skylab_response = swarming_runner.dummy_run_sanity(is_skylab=False)
59 skylab_swarming_task_info = swarming_runner.query_task(
60 skylab_response['task_id'], is_skylab=False)
61 self.response.write(skylab_swarming_task_info.tags)
62
63
Xixuan Wu630415c2019-05-24 14:24:12 -070064class _FakeSkylabWithSanityHandler(webapp2.RequestHandler):
Xixuan Wud9dd4742018-08-23 15:57:03 -070065
66 def get(self):
67 lab_config = config_reader.LabConfig(config_reader.ConfigReader(
68 file_getter.LAB_CONFIG_FILE))
69 afe_server = lab_config.get_dedicated_afe()
70 swarming_runner = swarming_lib.SwarmingRunner(
71 afe_server,
Xixuan Wu028f6732019-04-11 14:47:42 -070072 swarming_lib.SKYLAB_SWARMING_SERVER)
Xixuan Wud9dd4742018-08-23 15:57:03 -070073 skylab_response = swarming_runner.dummy_run_sanity(is_skylab=True)
74 skylab_swarming_task_info = swarming_runner.query_task(
75 skylab_response['task_id'], is_skylab=True)
76 self.response.write(skylab_swarming_task_info.tags)
77
78
Xixuan Wu630415c2019-05-24 14:24:12 -070079class _FakeSkylabBackwardCompatibilityWithSanityHandler(webapp2.RequestHandler):
Xixuan Wu0d730582019-04-25 11:20:39 -070080
81 def get(self):
82 lab_config = config_reader.LabConfig(config_reader.ConfigReader(
83 file_getter.LAB_CONFIG_FILE))
84 afe_server = lab_config.get_dedicated_afe()
85 swarming_runner = swarming_lib.SwarmingRunner(
86 afe_server,
87 swarming_lib.SKYLAB_SWARMING_SERVER)
88 skylab_response = swarming_runner.dummy_run_sanity_old(is_skylab=True)
89 skylab_swarming_task_info = swarming_runner.query_task(
90 skylab_response['task_id'], is_skylab=True)
91 self.response.write(skylab_swarming_task_info.tags)
92
93
Xixuan Wuf856ff12019-05-21 14:09:38 -070094class _FakeBigqueryGetPassedHandler(webapp2.RequestHandler):
95
96 def get(self):
97 bq_client = rest_client.BuildBucketBigqueryClient(
98 rest_client.BaseRestClient(
99 constants.RestClient.BIGQUERY_CLIENT.scopes,
100 constants.RestClient.BIGQUERY_CLIENT.service_name,
101 constants.RestClient.BIGQUERY_CLIENT.service_version))
102
103 # Get passed builds in 3 days.
104 utc_now = time_converter.utc_now()
105 since_date = utc_now - datetime.timedelta(days=3)
106 res = bq_client.get_passed_builds_since_date(since_date)
107 for r in res:
108 self.response.write(r)
109 self.response.write('\n')
110
111
112class _FakeBigqueryGetRelaxedPassedHandler(webapp2.RequestHandler):
113
114 def get(self):
115 bq_client = rest_client.BuildBucketBigqueryClient(
116 rest_client.BaseRestClient(
117 constants.RestClient.BIGQUERY_CLIENT.scopes,
118 constants.RestClient.BIGQUERY_CLIENT.service_name,
119 constants.RestClient.BIGQUERY_CLIENT.service_version))
120
121 # Get passed builds in 3 days.
122 utc_now = time_converter.utc_now()
123 since_date = utc_now - datetime.timedelta(days=3)
124 res = bq_client.get_relaxed_passed_builds_since_date(since_date)
125 for r in res:
126 self.response.write(r)
127 self.response.write('\n')
128
129
Xinan Linc61196b2019-08-13 10:37:30 -0700130class _FakeBuildbucketLibCompatibilityHandler(webapp2.RequestHandler):
131
132 def get(self):
133 test_platform_client = buildbucket.TestPlatformClient(
134 constants.Buildbucket.HOST,
135 constants.Buildbucket.PROJECT,
136 constants.Buildbucket.BUCKET,
137 constants.Buildbucket.STAGING_BUILDER)
138 res = test_platform_client.dummy_run()
139 self.response.write(res)
140
141
Xixuan Wu865fa282017-09-05 15:23:19 -0700142app = webapp2.WSGIApplication([
Xixuan Wu630415c2019-05-24 14:24:12 -0700143 ('/test_push/afe_dummy', _FakeAFESwarmingAPIHandler),
144 ('/test_push/skylab_dummy', _FakeSkylabSwarmingAPIHandler),
145 ('/test_push/afe_sanity', _FakeAFEWithSanityHandler),
146 ('/test_push/skylab_sanity', _FakeSkylabWithSanityHandler),
Xixuan Wu0d730582019-04-25 11:20:39 -0700147 ('/test_push/skylab_sanity_bc_test',
Xixuan Wu630415c2019-05-24 14:24:12 -0700148 _FakeSkylabBackwardCompatibilityWithSanityHandler),
Xixuan Wuf856ff12019-05-21 14:09:38 -0700149 ('/test_push/bq_get_passed', _FakeBigqueryGetPassedHandler),
150 ('/test_push/bq_get_relaxed_passed', _FakeBigqueryGetRelaxedPassedHandler),
Xinan Linc61196b2019-08-13 10:37:30 -0700151 ('/test_push/buildbucket_lib_compatibility',
152 _FakeBuildbucketLibCompatibilityHandler)
Xixuan Wu865fa282017-09-05 15:23:19 -0700153 ], debug=True)