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

Side by Side Diff: third_party/google-endpoints/endpoints/test/discovery_service_test.py

Issue 2666783008: Add google-endpoints to third_party/. (Closed)
Patch Set: Created 3 years, 10 months 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
OLDNEW
(Empty)
1 # Copyright 2016 Google Inc. All Rights Reserved.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 # http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14
15 """Tests for discovery_service."""
16
17 import os
18 import unittest
19
20 import endpoints.api_config as api_config
21 import endpoints.api_config_manager as api_config_manager
22 import endpoints.apiserving as apiserving
23 import endpoints.discovery_service as discovery_service
24 import test_util
25
26 from protorpc import message_types
27 from protorpc import remote
28
29
30 @api_config.api('aservice', 'v3', hostname='aservice.appspot.com',
31 description='A Service API')
32 class AService(remote.Service):
33
34 @api_config.method(path='noop')
35 def Noop(self, unused_request):
36 return message_types.VoidMessage()
37
38
39 class DiscoveryServiceTest(unittest.TestCase):
40
41 class FakeRequest(object):
42
43 def __init__(self, server=None, port=None, url_scheme=None, api=None,
44 version=None):
45 self.server = server
46 self.port = port
47 self.url_scheme = url_scheme
48 self.body_json = {'api': api, 'version': version}
49
50 def setUp(self):
51 """Make ApiConfigManager with a few helpful fakes."""
52 self.backend = self._create_wsgi_application()
53 self.config_manager = api_config_manager.ApiConfigManager()
54 self.discovery = discovery_service.DiscoveryService(
55 self.config_manager, self.backend)
56
57 def _create_wsgi_application(self):
58 return apiserving._ApiServer([AService], registry_path='/my_registry')
59
60 def _check_api_config(self, expected_base_url, server, port, url_scheme, api,
61 version):
62 request = DiscoveryServiceTest.FakeRequest(
63 server=server, port=port, url_scheme=url_scheme, api=api,
64 version=version)
65 config_dict = self.discovery._generate_api_config_with_root(request)
66
67 # Check bns entry
68 adapter = config_dict.get('adapter')
69 self.assertIsNotNone(adapter)
70 self.assertEqual(expected_base_url, adapter.get('bns'))
71
72 # Check root
73 self.assertEqual(expected_base_url, config_dict.get('root'))
74
75
76 class ProdDiscoveryServiceTest(DiscoveryServiceTest):
77
78 def testGenerateApiConfigWithRoot(self):
79 server = 'test.appspot.com'
80 port = '12345'
81 url_scheme = 'https'
82 api = 'aservice'
83 version = 'v3'
84 expected_base_url = '{0}://{1}:{2}/_ah/api'.format(url_scheme, server, port)
85
86 self._check_api_config(expected_base_url, server, port, url_scheme, api,
87 version)
88
89 def testGenerateApiConfigWithRootLocalhost(self):
90 server = 'localhost'
91 port = '12345'
92 url_scheme = 'http'
93 api = 'aservice'
94 version = 'v3'
95 expected_base_url = '{0}://{1}:{2}/_ah/api'.format(url_scheme, server, port)
96
97 self._check_api_config(expected_base_url, server, port, url_scheme, api,
98 version)
99
100 def testGenerateApiConfigLocalhostDefaultHttpPort(self):
101 server = 'localhost'
102 port = '80'
103 url_scheme = 'http'
104 api = 'aservice'
105 version = 'v3'
106 expected_base_url = '{0}://{1}/_ah/api'.format(url_scheme, server)
107
108 self._check_api_config(expected_base_url, server, port, url_scheme, api,
109 version)
110
111 def testGenerateApiConfigWithRootDefaultHttpsPort(self):
112 server = 'test.appspot.com'
113 port = '443'
114 url_scheme = 'https'
115 api = 'aservice'
116 version = 'v3'
117 expected_base_url = '{0}://{1}/_ah/api'.format(url_scheme, server)
118
119 self._check_api_config(expected_base_url, server, port, url_scheme, api,
120 version)
121
122
123 class DevServerDiscoveryServiceTest(DiscoveryServiceTest,
124 test_util.DevServerTest):
125
126 def setUp(self):
127 super(DevServerDiscoveryServiceTest, self).setUp()
128 self.env_key, self.orig_env_value = (test_util.DevServerTest.
129 setUpDevServerEnv())
130 self.addCleanup(test_util.DevServerTest.restoreEnv,
131 self.env_key, self.orig_env_value)
132
133 def testGenerateApiConfigWithRootDefaultHttpPort(self):
134 server = 'test.appspot.com'
135 port = '80'
136 url_scheme = 'http'
137 api = 'aservice'
138 version = 'v3'
139 expected_base_url = '{0}://{1}/_ah/api'.format(url_scheme, server)
140
141 self._check_api_config(expected_base_url, server, port, url_scheme, api,
142 version)
143
144 def testGenerateApiConfigLocalhostDefaultHttpPort(self):
145 server = 'localhost'
146 port = '80'
147 url_scheme = 'http'
148 api = 'aservice'
149 version = 'v3'
150 expected_base_url = '{0}://{1}/_ah/api'.format(url_scheme, server)
151
152 self._check_api_config(expected_base_url, server, port, url_scheme, api,
153 version)
154
155 def testGenerateApiConfigHTTPS(self):
156 server = 'test.appspot.com'
157 port = '443'
158 url_scheme = 'http' # Should still be 'http' because we're using devserver
159 api = 'aservice'
160 version = 'v3'
161 expected_base_url = '{0}://{1}:{2}/_ah/api'.format(url_scheme, server, port)
162
163 self._check_api_config(expected_base_url, server, port, url_scheme, api,
164 version)
165
166 if __name__ == '__main__':
167 unittest.main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698