tests/gateway/test_irc_adapter.py::TestIRCProtocolHelpers::test_parse_simple_command tests/gateway/test_irc_adapter.py::TestIRCProtocolHelpers::test_parse_prefixed_message tests/gateway/test_irc_adapter.py::TestIRCProtocolHelpers::test_parse_numeric_reply tests/gateway/test_irc_adapter.py::TestIRCProtocolHelpers::test_parse_nick_collision tests/gateway/test_irc_adapter.py::TestIRCProtocolHelpers::test_extract_nick_full_prefix tests/gateway/test_irc_adapter.py::TestIRCProtocolHelpers::test_extract_nick_bare tests/gateway/test_irc_adapter.py::TestIRCAdapterInit::test_init_from_env tests/gateway/test_irc_adapter.py::TestIRCAdapterInit::test_init_from_config_extra tests/gateway/test_irc_adapter.py::TestIRCAdapterInit::test_env_overrides_config tests/gateway/test_irc_adapter.py::TestIRCAdapterSend::test_send_not_connected tests/gateway/test_irc_adapter.py::TestIRCAdapterSend::test_send_success tests/gateway/test_irc_adapter.py::TestIRCAdapterSend::test_send_splits_long_messages tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_handle_ping tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_handle_welcome tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_handle_nick_collision tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_handle_addressed_channel_message tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_ignores_unaddressed_channel_message tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_handle_dm tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_ignores_own_messages tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_ctcp_action_converted tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_allowed_users_case_insensitive tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_unauthorized_user_blocked tests/gateway/test_irc_adapter.py::TestIRCAdapterMessageParsing::test_nick_collision_retry tests/gateway/test_irc_adapter.py::TestIRCAdapterSplitting::test_split_respects_byte_limit tests/gateway/test_irc_adapter.py::TestIRCAdapterSplitting::test_split_prefers_word_boundary tests/gateway/test_irc_adapter.py::TestIRCProtocolHelpersExtra::test_parse_malformed_no_space tests/gateway/test_irc_adapter.py::TestIRCProtocolHelpersExtra::test_parse_empty tests/gateway/test_irc_adapter.py::TestIRCAdapterMarkdown::test_strip_bold tests/gateway/test_irc_adapter.py::TestIRCAdapterMarkdown::test_strip_italic tests/gateway/test_irc_adapter.py::TestIRCAdapterMarkdown::test_strip_code tests/gateway/test_irc_adapter.py::TestIRCAdapterMarkdown::test_strip_link tests/gateway/test_irc_adapter.py::TestIRCAdapterMarkdown::test_strip_image tests/gateway/test_irc_adapter.py::TestIRCRequirements::test_check_requirements_with_env tests/gateway/test_irc_adapter.py::TestIRCRequirements::test_check_requirements_missing_server tests/gateway/test_irc_adapter.py::TestIRCRequirements::test_check_requirements_missing_channel tests/gateway/test_irc_adapter.py::TestIRCRequirements::test_validate_config_from_extra tests/gateway/test_irc_adapter.py::TestIRCRequirements::test_validate_config_missing tests/gateway/test_irc_adapter.py::TestIRCPluginRegistration::test_register_adds_to_registry tests/gateway/test_irc_adapter.py::TestIRCStandaloneSend::test_standalone_send_completes_handshake_and_sends_privmsg tests/gateway/test_irc_adapter.py::TestIRCStandaloneSend::test_standalone_send_returns_error_when_unconfigured tests/gateway/test_irc_adapter.py::TestIRCStandaloneSend::test_standalone_send_returns_error_on_registration_timeout tests/gateway/test_irc_adapter.py::TestIRCStandaloneSend::test_standalone_send_rejects_crlf_in_chat_id tests/gateway/test_irc_adapter.py::TestIRCStandaloneSend::test_standalone_send_strips_crlf_from_message_body tests/gateway/test_irc_adapter.py::TestIRCStandaloneSend::test_standalone_send_joins_channel_before_privmsg