|
14 | 14 |
|
15 | 15 | import json |
16 | 16 | import logging |
17 | | -from unittest import mock |
18 | 17 |
|
19 | 18 | import pytest # type: ignore |
20 | 19 |
|
21 | 20 | from google.auth.aio import _helpers |
22 | 21 |
|
| 22 | +# _MOCK_BASE_LOGGER_NAME is the base logger namespace used for testing. |
| 23 | +_MOCK_BASE_LOGGER_NAME = "foogle" |
| 24 | + |
| 25 | +# _MOCK_CHILD_LOGGER_NAME is the child logger namespace used for testing. |
| 26 | +_MOCK_CHILD_LOGGER_NAME = "foogle.bar" |
| 27 | + |
23 | 28 |
|
24 | 29 | @pytest.fixture |
25 | 30 | def logger(): |
26 | | - """Provides a basic logger instance for testing.""" |
27 | | - return logging.getLogger(__name__) |
| 31 | + """Returns a child logger for testing.""" |
| 32 | + logger = logging.getLogger(_MOCK_CHILD_LOGGER_NAME) |
| 33 | + logger.level = logging.NOTSET |
| 34 | + logger.handlers = [] |
| 35 | + logger.propagate = True |
| 36 | + return logger |
| 37 | + |
| 38 | + |
| 39 | +@pytest.fixture |
| 40 | +def base_logger(): |
| 41 | + """Returns a child logger for testing.""" |
| 42 | + logger = logging.getLogger(_MOCK_BASE_LOGGER_NAME) |
| 43 | + logger.level = logging.NOTSET |
| 44 | + logger.handlers = [] |
| 45 | + logger.propagate = True |
| 46 | + return logger |
28 | 47 |
|
29 | 48 |
|
30 | 49 | @pytest.mark.asyncio |
31 | | -async def test_response_log_debug_enabled(logger, caplog): |
32 | | - logger.setLevel(logging.DEBUG) |
33 | | - with mock.patch("google.auth._helpers.CLIENT_LOGGING_SUPPORTED", True): |
34 | | - await _helpers.response_log_async(logger, {"payload": None}) |
| 50 | +async def test_response_log_debug_enabled(logger, caplog, base_logger): |
| 51 | + caplog.set_level(logging.DEBUG, logger=_MOCK_CHILD_LOGGER_NAME) |
| 52 | + await _helpers.response_log_async(logger, {"payload": None}) |
35 | 53 | assert len(caplog.records) == 1 |
36 | 54 | record = caplog.records[0] |
37 | 55 | assert record.message == "Response received..." |
38 | 56 | assert record.httpResponse == "<class 'NoneType'>" |
39 | 57 |
|
40 | 58 |
|
41 | 59 | @pytest.mark.asyncio |
42 | | -async def test_response_log_debug_disabled(logger, caplog): |
43 | | - logger.setLevel(logging.INFO) |
44 | | - with mock.patch("google.auth._helpers.CLIENT_LOGGING_SUPPORTED", True): |
45 | | - await _helpers.response_log_async(logger, "another_response") |
| 60 | +async def test_response_log_debug_disabled(logger, caplog, base_logger): |
| 61 | + caplog.set_level(logging.INFO, logger=_MOCK_CHILD_LOGGER_NAME) |
| 62 | + await _helpers.response_log_async(logger, "another_response") |
46 | 63 | assert "Response received..." not in caplog.text |
47 | 64 |
|
48 | 65 |
|
49 | 66 | @pytest.mark.asyncio |
50 | | -async def test_response_log_debug_enabled_response_json(logger, caplog): |
| 67 | +async def test_response_log_debug_enabled_response_json(logger, caplog, base_logger): |
51 | 68 | class MockResponse: |
52 | 69 | async def json(self): |
53 | 70 | return {"key1": "value1", "key2": "value2", "key3": "value3"} |
54 | 71 |
|
55 | 72 | response = MockResponse() |
56 | | - logger.setLevel(logging.DEBUG) |
57 | | - with mock.patch("google.auth._helpers.CLIENT_LOGGING_SUPPORTED", True): |
58 | | - await _helpers.response_log_async(logger, response) |
| 73 | + caplog.set_level(logging.DEBUG, logger=_MOCK_CHILD_LOGGER_NAME) |
| 74 | + await _helpers.response_log_async(logger, response) |
59 | 75 | assert len(caplog.records) == 1 |
60 | 76 | record = caplog.records[0] |
61 | 77 | assert record.message == "Response received..." |
|
0 commit comments