fix(feishu): test SDK globals by None-ness, not globals() membership
The no-SDK fallback guards check '"Name" in globals()' — correct on main where a failed module-level import leaves those names undefined, but the deferred-import port pre-binds every SDK name to None, so the guard was always true and the fallback paths called .builder() on None (AttributeError) wherever lark_oapi isn't installed. Local runs passed because lark IS installed here; CI's default env has no feishu extra. Rewrote all 14 guards to 'is not None', which is correct under both conditions. Verified by simulating CI with a lark-blocking meta_path hook: 74 passed, 18 skipped (the skipUnless set), zero failures.
This commit is contained in:
parent
f84e3687d8
commit
e80b7aeda1
|
|
@ -5051,19 +5051,19 @@ class FeishuAdapter(BasePlatformAdapter):
|
|||
|
||||
@staticmethod
|
||||
def _build_get_chat_request(chat_id: str) -> Any:
|
||||
if "GetChatRequest" in globals():
|
||||
if GetChatRequest is not None:
|
||||
return GetChatRequest.builder().chat_id(chat_id).build()
|
||||
return SimpleNamespace(chat_id=chat_id)
|
||||
|
||||
@staticmethod
|
||||
def _build_get_message_request(message_id: str) -> Any:
|
||||
if "GetMessageRequest" in globals():
|
||||
if GetMessageRequest is not None:
|
||||
return GetMessageRequest.builder().message_id(message_id).build()
|
||||
return SimpleNamespace(message_id=message_id)
|
||||
|
||||
@staticmethod
|
||||
def _build_message_resource_request(*, message_id: str, file_key: str, resource_type: str) -> Any:
|
||||
if "GetMessageResourceRequest" in globals():
|
||||
if GetMessageResourceRequest is not None:
|
||||
return (
|
||||
GetMessageResourceRequest.builder()
|
||||
.message_id(message_id)
|
||||
|
|
@ -5075,7 +5075,7 @@ class FeishuAdapter(BasePlatformAdapter):
|
|||
|
||||
@staticmethod
|
||||
def _build_get_application_request(*, app_id: str, lang: str) -> Any:
|
||||
if "GetApplicationRequest" in globals():
|
||||
if GetApplicationRequest is not None:
|
||||
return (
|
||||
GetApplicationRequest.builder()
|
||||
.app_id(app_id)
|
||||
|
|
@ -5086,7 +5086,7 @@ class FeishuAdapter(BasePlatformAdapter):
|
|||
|
||||
@staticmethod
|
||||
def _build_reply_message_body(*, content: str, msg_type: str, reply_in_thread: bool, uuid_value: str) -> Any:
|
||||
if "ReplyMessageRequestBody" in globals():
|
||||
if ReplyMessageRequestBody is not None:
|
||||
return (
|
||||
ReplyMessageRequestBody.builder()
|
||||
.content(content)
|
||||
|
|
@ -5104,7 +5104,7 @@ class FeishuAdapter(BasePlatformAdapter):
|
|||
|
||||
@staticmethod
|
||||
def _build_reply_message_request(message_id: str, request_body: Any) -> Any:
|
||||
if "ReplyMessageRequest" in globals():
|
||||
if ReplyMessageRequest is not None:
|
||||
return (
|
||||
ReplyMessageRequest.builder()
|
||||
.message_id(message_id)
|
||||
|
|
@ -5115,7 +5115,7 @@ class FeishuAdapter(BasePlatformAdapter):
|
|||
|
||||
@staticmethod
|
||||
def _build_update_message_body(*, msg_type: str, content: str) -> Any:
|
||||
if "UpdateMessageRequestBody" in globals():
|
||||
if UpdateMessageRequestBody is not None:
|
||||
return (
|
||||
UpdateMessageRequestBody.builder()
|
||||
.msg_type(msg_type)
|
||||
|
|
@ -5126,7 +5126,7 @@ class FeishuAdapter(BasePlatformAdapter):
|
|||
|
||||
@staticmethod
|
||||
def _build_update_message_request(message_id: str, request_body: Any) -> Any:
|
||||
if "UpdateMessageRequest" in globals():
|
||||
if UpdateMessageRequest is not None:
|
||||
return (
|
||||
UpdateMessageRequest.builder()
|
||||
.message_id(message_id)
|
||||
|
|
@ -5137,7 +5137,7 @@ class FeishuAdapter(BasePlatformAdapter):
|
|||
|
||||
@staticmethod
|
||||
def _build_create_message_body(*, receive_id: str, msg_type: str, content: str, uuid_value: str) -> Any:
|
||||
if "CreateMessageRequestBody" in globals():
|
||||
if CreateMessageRequestBody is not None:
|
||||
return (
|
||||
CreateMessageRequestBody.builder()
|
||||
.receive_id(receive_id)
|
||||
|
|
@ -5155,7 +5155,7 @@ class FeishuAdapter(BasePlatformAdapter):
|
|||
|
||||
@staticmethod
|
||||
def _build_create_message_request(receive_id_type: str, request_body: Any) -> Any:
|
||||
if "CreateMessageRequest" in globals():
|
||||
if CreateMessageRequest is not None:
|
||||
return (
|
||||
CreateMessageRequest.builder()
|
||||
.receive_id_type(receive_id_type)
|
||||
|
|
@ -5166,7 +5166,7 @@ class FeishuAdapter(BasePlatformAdapter):
|
|||
|
||||
@staticmethod
|
||||
def _build_image_upload_body(*, image_type: str, image: Any) -> Any:
|
||||
if "CreateImageRequestBody" in globals():
|
||||
if CreateImageRequestBody is not None:
|
||||
return (
|
||||
CreateImageRequestBody.builder()
|
||||
.image_type(image_type)
|
||||
|
|
@ -5177,13 +5177,13 @@ class FeishuAdapter(BasePlatformAdapter):
|
|||
|
||||
@staticmethod
|
||||
def _build_image_upload_request(request_body: Any) -> Any:
|
||||
if "CreateImageRequest" in globals():
|
||||
if CreateImageRequest is not None:
|
||||
return CreateImageRequest.builder().request_body(request_body).build()
|
||||
return SimpleNamespace(request_body=request_body)
|
||||
|
||||
@staticmethod
|
||||
def _build_file_upload_body(*, file_type: str, file_name: str, file: Any, duration: int = 0) -> Any:
|
||||
if "CreateFileRequestBody" in globals():
|
||||
if CreateFileRequestBody is not None:
|
||||
builder = (
|
||||
CreateFileRequestBody.builder()
|
||||
.file_type(file_type)
|
||||
|
|
@ -5197,7 +5197,7 @@ class FeishuAdapter(BasePlatformAdapter):
|
|||
|
||||
@staticmethod
|
||||
def _build_file_upload_request(request_body: Any) -> Any:
|
||||
if "CreateFileRequest" in globals():
|
||||
if CreateFileRequest is not None:
|
||||
return CreateFileRequest.builder().request_body(request_body).build()
|
||||
return SimpleNamespace(request_body=request_body)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue