def test_basic_json(self): expected = { "confirm": { "emoji": True, "text": "Yes", "type": "plain_text" }, "deny": { "emoji": True, "text": "No", "type": "plain_text" }, "text": { "text": "are you sure?", "type": "mrkdwn" }, "title": { "emoji": True, "text": "some title", "type": "plain_text" }, } simple_object = ConfirmObject(title="some title", text="are you sure?") self.assertDictEqual(expected, simple_object.to_dict()) self.assertDictEqual(expected, simple_object.to_dict("block")) self.assertDictEqual( { "text": "are you sure?", "title": "some title", "ok_text": "Okay", "dismiss_text": "Cancel", }, simple_object.to_dict("action"), )
def test_json(self): self.assertDictEqual( ActionButton(name="button_1", text="Click me!", value="btn_1").to_dict(), { "name": "button_1", "text": "Click me!", "value": "btn_1", "type": "button", }, ) confirm = ConfirmObject(title="confirm_title", text="confirm_text") self.assertDictEqual( ActionButton( name="button_1", text="Click me!", value="btn_1", confirm=confirm, style="danger", ).to_dict(), { "name": "button_1", "text": "Click me!", "value": "btn_1", "type": "button", "confirm": confirm.to_dict("action"), "style": "danger", }, )
def test_json(self): self.assertDictEqual( { "text": {"emoji": True, "text": "button text", "type": "plain_text"}, "action_id": "some_button", "value": "button_123", "type": "button", }, ButtonElement( text="button text", action_id="some_button", value="button_123" ).to_dict(), ) confirm = ConfirmObject(title="really?", text="are you sure?") self.assertDictEqual( { "text": {"emoji": True, "text": "button text", "type": "plain_text"}, "action_id": "some_button", "value": "button_123", "type": "button", "style": "primary", "confirm": confirm.to_dict(), }, ButtonElement( text="button text", action_id="some_button", value="button_123", style="primary", confirm=confirm, ).to_dict(), )
def test_json(self): self.assertDictEqual( { "placeholder": { "emoji": True, "text": "selectedValue", "type": "plain_text", }, "action_id": "dropdown", "min_query_length": 5, "type": "external_select", }, ExternalDataSelectElement( placeholder="selectedValue", action_id="dropdown", min_query_length=5 ).to_dict(), ) self.assertDictEqual( { "placeholder": { "emoji": True, "text": "selectedValue", "type": "plain_text", }, "action_id": "dropdown", "confirm": ConfirmObject(title="title", text="text").to_dict("block"), "type": "external_select", }, ExternalDataSelectElement( placeholder="selectedValue", action_id="dropdown", confirm=ConfirmObject(title="title", text="text"), ).to_dict(), )
def test_text_length_with_object(self): with self.assertRaises(SlackObjectFormationError): plaintext = PlainTextObject(text=STRING_301_CHARS) ConfirmObject(title="title", text=plaintext).to_dict() with self.assertRaises(SlackObjectFormationError): markdown = MarkdownTextObject(text=STRING_301_CHARS) ConfirmObject(title="title", text=markdown).to_dict()
def test_json(self): dict_options = [] for o in self.options: dict_options.append(o.to_dict()) self.assertDictEqual( { "placeholder": { "emoji": True, "text": "selectedValue", "type": "plain_text", }, "action_id": "dropdown", "options": dict_options, "initial_option": self.option_two.to_dict(), "type": "static_select", }, StaticSelectElement( placeholder="selectedValue", action_id="dropdown", options=self.options, initial_option=self.option_two, ).to_dict(), ) self.assertDictEqual( { "placeholder": { "emoji": True, "text": "selectedValue", "type": "plain_text", }, "action_id": "dropdown", "options": dict_options, "confirm": ConfirmObject(title="title", text="text").to_dict("block"), "type": "static_select", }, StaticSelectElement( placeholder="selectedValue", action_id="dropdown", options=self.options, confirm=ConfirmObject(title="title", text="text"), ).to_dict(), )
def test_confirm_style_validation(self): with self.assertRaises(SlackObjectFormationError): ConfirmObject.parse({ "title": { "type": "plain_text", "text": "Are you sure?" }, "text": { "type": "mrkdwn", "text": "Wouldn't you prefer a good game of _chess_?", }, "confirm": { "type": "plain_text", "text": "Do it" }, "deny": { "type": "plain_text", "text": "Stop, I've changed my mind!", }, "style": "something-wrong", }).validate_json()
def test_confirm_overrides(self): confirm = ConfirmObject( title="some title", text="are you sure?", confirm="I'm really sure", deny="Nevermind", ) expected = { "confirm": { "text": "I'm really sure", "type": "plain_text", "emoji": True }, "deny": { "text": "Nevermind", "type": "plain_text", "emoji": True }, "text": { "text": "are you sure?", "type": "mrkdwn" }, "title": { "text": "some title", "type": "plain_text", "emoji": True }, } self.assertDictEqual(expected, confirm.to_dict()) self.assertDictEqual(expected, confirm.to_dict("block")) self.assertDictEqual( { "text": "are you sure?", "title": "some title", "ok_text": "I'm really sure", "dismiss_text": "Nevermind", }, confirm.to_dict("action"), )
def test_passing_text_objects(self): direct_construction = ConfirmObject(title="title", text="Are you sure?") mrkdwn = MarkdownTextObject(text="Are you sure?") preconstructed = ConfirmObject(title="title", text=mrkdwn) self.assertDictEqual(direct_construction.to_dict(), preconstructed.to_dict()) plaintext = PlainTextObject(text="Are you sure?", emoji=False) passed_plaintext = ConfirmObject(title="title", text=plaintext) self.assertDictEqual( { "confirm": { "emoji": True, "text": "Yes", "type": "plain_text" }, "deny": { "emoji": True, "text": "No", "type": "plain_text" }, "text": { "emoji": False, "text": "Are you sure?", "type": "plain_text" }, "title": { "emoji": True, "text": "title", "type": "plain_text" }, }, passed_plaintext.to_dict(), )
def test_confirm_style(self): obj = ConfirmObject.parse({ "title": { "type": "plain_text", "text": "Are you sure?" }, "text": { "type": "mrkdwn", "text": "Wouldn't you prefer a good game of _chess_?", }, "confirm": { "type": "plain_text", "text": "Do it" }, "deny": { "type": "plain_text", "text": "Stop, I've changed my mind!" }, "style": "primary", }) obj.validate_json() self.assertEqual("primary", obj.style)
def test_deny_length(self): with self.assertRaises(SlackObjectFormationError): ConfirmObject(title="title", text="Are you sure?", deny=STRING_51_CHARS).to_dict()
def test_text_length(self): with self.assertRaises(SlackObjectFormationError): ConfirmObject(title="title", text=STRING_301_CHARS).to_dict()
def test_title_length(self): with self.assertRaises(SlackObjectFormationError): ConfirmObject(title=STRING_301_CHARS, text="Are you sure?").to_dict()