tests/gateway/test_feishu_onboard.py::TestPostRegistration::test_post_registration_returns_parsed_json tests/gateway/test_feishu_onboard.py::TestPostRegistration::test_post_registration_sends_form_encoded_body tests/gateway/test_feishu_onboard.py::TestInitRegistration::test_init_succeeds_when_client_secret_supported tests/gateway/test_feishu_onboard.py::TestInitRegistration::test_init_raises_when_client_secret_not_supported tests/gateway/test_feishu_onboard.py::TestInitRegistration::test_init_uses_lark_url_for_lark_domain tests/gateway/test_feishu_onboard.py::TestBeginRegistration::test_begin_returns_device_code_and_qr_url tests/gateway/test_feishu_onboard.py::TestBeginRegistration::test_begin_sends_correct_archetype tests/gateway/test_feishu_onboard.py::TestPollRegistration::test_poll_returns_credentials_on_success tests/gateway/test_feishu_onboard.py::TestPollRegistration::test_poll_switches_domain_on_lark_tenant_brand tests/gateway/test_feishu_onboard.py::TestPollRegistration::test_poll_success_with_lark_brand_in_same_response tests/gateway/test_feishu_onboard.py::TestPollRegistration::test_poll_returns_none_on_access_denied tests/gateway/test_feishu_onboard.py::TestPollRegistration::test_poll_returns_none_on_timeout tests/gateway/test_feishu_onboard.py::TestPollRegistration::test_poll_timeout_uses_monotonic_clock tests/gateway/test_feishu_onboard.py::TestRenderQr::test_render_qr_returns_true_on_success tests/gateway/test_feishu_onboard.py::TestRenderQr::test_render_qr_returns_false_when_qrcode_missing tests/gateway/test_feishu_onboard.py::TestProbeBot::test_probe_returns_bot_info_on_success tests/gateway/test_feishu_onboard.py::TestProbeBot::test_probe_returns_none_on_failure tests/gateway/test_feishu_onboard.py::TestProbeBot::test_http_fallback_when_sdk_unavailable tests/gateway/test_feishu_onboard.py::TestProbeBot::test_http_fallback_returns_none_on_network_error tests/gateway/test_feishu_onboard.py::TestQrRegister::test_qr_register_success_flow tests/gateway/test_feishu_onboard.py::TestQrRegister::test_qr_register_returns_none_on_init_failure tests/gateway/test_feishu_onboard.py::TestQrRegister::test_qr_register_returns_none_on_poll_failure tests/gateway/test_feishu_onboard.py::TestQrRegister::test_qr_register_returns_none_on_network_error tests/gateway/test_feishu_onboard.py::TestQrRegister::test_qr_register_returns_none_on_json_error tests/gateway/test_feishu_onboard.py::TestQrRegister::test_qr_register_propagates_unexpected_errors tests/gateway/test_feishu_onboard.py::TestQrRegister::test_qr_register_returns_none_when_begin_missing_device_code tests/gateway/test_feishu_onboard.py::TestQrRegister::test_qr_register_succeeds_even_when_probe_fails