def test_document(self):
     input = {
         "action_id": "text1234",
         "type": "multi_external_select",
         "placeholder": {"type": "plain_text", "text": "Select items"},
         "min_query_length": 3,
     }
     self.assertDictEqual(input, ExternalDataMultiSelectElement(**input).to_dict())
 def test_focus_on_load(self):
     input = {
         "action_id": "text1234",
         "type": "multi_external_select",
         "placeholder": {
             "type": "plain_text",
             "text": "Select items"
         },
         "focus_on_load": True,
     }
     self.assertDictEqual(input,
                          ExternalDataMultiSelectElement(**input).to_dict())
 def test_document_initial_options(self):
     input = {
         "action_id": "text1234",
         "type": "multi_external_select",
         "placeholder": {"type": "plain_text", "text": "Select items"},
         "initial_options": [
             {
                 "text": {"type": "plain_text", "text": "The default channel"},
                 "value": "C1234567890",
             }
         ],
         "min_query_length": 0,
         "max_selected_items": 1,
     }
     self.assertDictEqual(input, ExternalDataMultiSelectElement(**input).to_dict())
示例#4
0
def handle_command(body: dict, ack: Ack, respond: Respond, client: WebClient,
                   logger: Logger) -> None:
    logger.info(body)
    ack(
        text="Accepted!",
        blocks=[
            SectionBlock(
                block_id="b",
                text=MarkdownTextObject(text=":white_check_mark: Accepted!"),
            )
        ],
    )

    respond(blocks=[
        SectionBlock(
            block_id="b",
            text=MarkdownTextObject(
                text="You can add a button alongside text in your message. "),
            accessory=ButtonElement(
                action_id="a",
                text=PlainTextObject(text="Button"),
                value="click_me_123",
            ),
        ),
    ])

    res = client.views_open(
        trigger_id=body["trigger_id"],
        view=View(
            type="modal",
            callback_id="view-id",
            title=PlainTextObject(text="My App"),
            submit=PlainTextObject(text="Submit"),
            close=PlainTextObject(text="Cancel"),
            blocks=[
                InputBlock(
                    element=PlainTextInputElement(action_id="text"),
                    label=PlainTextObject(text="Label"),
                ),
                InputBlock(
                    block_id="es_b",
                    element=ExternalDataSelectElement(
                        action_id="es_a",
                        placeholder=PlainTextObject(text="Select an item"),
                        min_query_length=0,
                    ),
                    label=PlainTextObject(text="Search"),
                ),
                InputBlock(
                    block_id="mes_b",
                    element=ExternalDataMultiSelectElement(
                        action_id="mes_a",
                        placeholder=PlainTextObject(text="Select an item"),
                        min_query_length=0,
                    ),
                    label=PlainTextObject(text="Search (multi)"),
                ),
            ],
        ),
    )
    logger.info(res)