tests: add tests to ensure web client is copyable by WilliamBergamin · Pull Request #1682 · slackapi/python-slack-sdk · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions tests/helpers.py
15 changes: 13 additions & 2 deletions tests/slack_sdk/web/test_web_client_logger.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,16 @@

from slack_sdk import WebClient
from slack_sdk.web import base_client
from tests.helpers import create_copy
from tests.mock_web_api_server import cleanup_mock_web_api_server, setup_mock_web_api_server
from tests.slack_sdk.web.mock_web_api_handler import MockHandler
from tests.mock_web_api_server import setup_mock_web_api_server, cleanup_mock_web_api_server


class TestWebClientLogger(unittest.TestCase):
test_logger: logging.Logger

def setUp(self):
self.test_logger = logging.Logger("test-logger")
self.test_logger = logging.getLogger("test-logger")

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WebClient loggers must be initialized with logging.getLogger since all calls to this function with a given name return the same logger instance.

This is a great TIL!

setup_mock_web_api_server(self, MockHandler)

def tearDown(self):
Expand All @@ -36,3 +37,13 @@ def test_logger_property_has_no_setter(self):
)
with self.assertRaises(AttributeError):
client.logger = self.test_logger

def test_ensure_web_client_with_logger_is_copyable(self):
client = WebClient(
base_url="http://localhost:8888",
token="xoxb-api_test",
logger=self.test_logger,
)
client_copy = create_copy(client)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🖨️ ✨

self.assertEqual(client.logger, self.test_logger)
self.assertEqual(client_copy.logger, self.test_logger)
13 changes: 12 additions & 1 deletion tests/slack_sdk_async/web/test_async_web_client_logger.py