Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 47843a0

Browse filesBrowse files
authored
Logging: allow more tries on inner retry for '_list_entries'. (#6179)
Also, make logger names unique between test runs. Closes #5303.
1 parent dd1714b commit 47843a0
Copy full SHA for 47843a0

File tree

Expand file treeCollapse file tree

1 file changed

+40
-38
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+40
-38
lines changed

‎logging/tests/system/test_system.py

Copy file name to clipboardExpand all lines: logging/tests/system/test_system.py
+40-38Lines changed: 40 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def _list_entries(logger):
6464
:rtype: list
6565
:returns: List of all entries consumed.
6666
"""
67-
inner = RetryResult(_has_entries)(_consume_entries)
67+
inner = RetryResult(_has_entries, max_tries=9)(_consume_entries)
6868
outer = RetryErrors(
6969
(ServiceUnavailable, ResourceExhausted), max_tries=9)(inner)
7070
return outer(logger)
@@ -114,8 +114,8 @@ def tearDown(self):
114114
logging.getLogger().handlers = self._handlers_cache[:]
115115

116116
@staticmethod
117-
def _logger_name():
118-
return 'system-tests-logger' + unique_resource_id('-')
117+
def _logger_name(prefix):
118+
return prefix + unique_resource_id('-')
119119

120120
def test_list_entry_with_unregistered(self):
121121
from google.protobuf import any_pb2
@@ -144,7 +144,7 @@ def test_list_entry_with_unregistered(self):
144144

145145
def test_log_text(self):
146146
TEXT_PAYLOAD = 'System test: test_log_text'
147-
logger = Config.CLIENT.logger(self._logger_name())
147+
logger = Config.CLIENT.logger(self._logger_name('log_text'))
148148
self.to_delete.append(logger)
149149
logger.log_text(TEXT_PAYLOAD)
150150
entries = _list_entries(logger)
@@ -153,7 +153,7 @@ def test_log_text(self):
153153

154154
def test_log_text_with_timestamp(self):
155155
text_payload = 'System test: test_log_text_with_timestamp'
156-
logger = Config.CLIENT.logger(self._logger_name())
156+
logger = Config.CLIENT.logger(self._logger_name('log_text_ts'))
157157
now = datetime.datetime.utcnow()
158158

159159
self.to_delete.append(logger)
@@ -167,7 +167,7 @@ def test_log_text_with_timestamp(self):
167167
def test_log_text_with_resource(self):
168168
text_payload = 'System test: test_log_text_with_timestamp'
169169

170-
logger = Config.CLIENT.logger(self._logger_name())
170+
logger = Config.CLIENT.logger(self._logger_name('log_text_res'))
171171
now = datetime.datetime.utcnow()
172172
resource = Resource(
173173
type='gae_app',
@@ -199,7 +199,7 @@ def test_log_text_w_metadata(self):
199199
'requestUrl': URI,
200200
'status': STATUS,
201201
}
202-
logger = Config.CLIENT.logger(self._logger_name())
202+
logger = Config.CLIENT.logger(self._logger_name('log_text_md'))
203203
self.to_delete.append(logger)
204204

205205
logger.log_text(TEXT_PAYLOAD, insert_id=INSERT_ID, severity=SEVERITY,
@@ -219,7 +219,7 @@ def test_log_text_w_metadata(self):
219219
self.assertEqual(request['status'], STATUS)
220220

221221
def test_log_struct(self):
222-
logger = Config.CLIENT.logger(self._logger_name())
222+
logger = Config.CLIENT.logger(self._logger_name('log_struct'))
223223
self.to_delete.append(logger)
224224

225225
logger.log_struct(self.JSON_PAYLOAD)
@@ -228,10 +228,37 @@ def test_log_struct(self):
228228
self.assertEqual(len(entries), 1)
229229
self.assertEqual(entries[0].payload, self.JSON_PAYLOAD)
230230

231+
def test_log_struct_w_metadata(self):
232+
INSERT_ID = 'INSERTID'
233+
SEVERITY = 'INFO'
234+
METHOD = 'POST'
235+
URI = 'https://api.example.com/endpoint'
236+
STATUS = 500
237+
REQUEST = {
238+
'requestMethod': METHOD,
239+
'requestUrl': URI,
240+
'status': STATUS,
241+
}
242+
logger = Config.CLIENT.logger(self._logger_name('log_struct_md'))
243+
self.to_delete.append(logger)
244+
245+
logger.log_struct(self.JSON_PAYLOAD, insert_id=INSERT_ID,
246+
severity=SEVERITY, http_request=REQUEST)
247+
entries = _list_entries(logger)
248+
249+
self.assertEqual(len(entries), 1)
250+
self.assertEqual(entries[0].payload, self.JSON_PAYLOAD)
251+
self.assertEqual(entries[0].insert_id, INSERT_ID)
252+
self.assertEqual(entries[0].severity, SEVERITY)
253+
request = entries[0].http_request
254+
self.assertEqual(request['requestMethod'], METHOD)
255+
self.assertEqual(request['requestUrl'], URI)
256+
self.assertEqual(request['status'], STATUS)
257+
231258
def test_log_handler_async(self):
232259
LOG_MESSAGE = 'It was the worst of times'
233260

234-
handler_name = 'gcp-async' + unique_resource_id('-')
261+
handler_name = self._logger_name('handler_async')
235262
handler = CloudLoggingHandler(Config.CLIENT, name=handler_name)
236263
# only create the logger to delete, hidden otherwise
237264
logger = Config.CLIENT.logger(handler_name)
@@ -252,8 +279,9 @@ def test_log_handler_async(self):
252279
def test_log_handler_sync(self):
253280
LOG_MESSAGE = 'It was the best of times.'
254281

282+
handler_name = self._logger_name('handler_sync')
255283
handler = CloudLoggingHandler(Config.CLIENT,
256-
name=self._logger_name(),
284+
name=handler_name,
257285
transport=SyncTransport)
258286

259287
# only create the logger to delete, hidden otherwise
@@ -276,7 +304,8 @@ def test_log_handler_sync(self):
276304
def test_log_root_handler(self):
277305
LOG_MESSAGE = 'It was the best of times.'
278306

279-
handler = CloudLoggingHandler(Config.CLIENT, name=self._logger_name())
307+
handler = CloudLoggingHandler(
308+
Config.CLIENT, name=self._logger_name('handler_root'))
280309
# only create the logger to delete, hidden otherwise
281310
logger = Config.CLIENT.logger(handler.name)
282311
self.to_delete.append(logger)
@@ -293,33 +322,6 @@ def test_log_root_handler(self):
293322
self.assertEqual(len(entries), 1)
294323
self.assertEqual(entries[0].payload, expected_payload)
295324

296-
def test_log_struct_w_metadata(self):
297-
INSERT_ID = 'INSERTID'
298-
SEVERITY = 'INFO'
299-
METHOD = 'POST'
300-
URI = 'https://api.example.com/endpoint'
301-
STATUS = 500
302-
REQUEST = {
303-
'requestMethod': METHOD,
304-
'requestUrl': URI,
305-
'status': STATUS,
306-
}
307-
logger = Config.CLIENT.logger(self._logger_name())
308-
self.to_delete.append(logger)
309-
310-
logger.log_struct(self.JSON_PAYLOAD, insert_id=INSERT_ID,
311-
severity=SEVERITY, http_request=REQUEST)
312-
entries = _list_entries(logger)
313-
314-
self.assertEqual(len(entries), 1)
315-
self.assertEqual(entries[0].payload, self.JSON_PAYLOAD)
316-
self.assertEqual(entries[0].insert_id, INSERT_ID)
317-
self.assertEqual(entries[0].severity, SEVERITY)
318-
request = entries[0].http_request
319-
self.assertEqual(request['requestMethod'], METHOD)
320-
self.assertEqual(request['requestUrl'], URI)
321-
self.assertEqual(request['status'], STATUS)
322-
323325
def test_create_metric(self):
324326
METRIC_NAME = 'test-create-metric%s' % (_RESOURCE_ID,)
325327
metric = Config.CLIENT.metric(

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.