def test_card_draw_form_select(): """ Ensure the expected form widget and associated label are added to the screen's layout instance. """ card = Card( "title", form=Inputs.SELECT, text="Form label...", options=["foo", "bar", "baz"], ) card.layout = mock.MagicMock() card.font_size = "48sp" card._draw_form() assert card.form_label.text == "Form label..." assert card.form_label.font_size == 48.0 assert card.form_label.markup is True assert card.form_label.color == [1.0, 1.0, 1.0, 1.0] assert card.form_label.valign == "top" assert card.form_label.halign == "left" assert len(card.select) == 3 assert card.select[0].text == "foo" assert card.select[0].group == "title" assert card.select[1].text == "bar" assert card.select[1].group == "title" assert card.select[2].text == "baz" assert card.select[2].group == "title"
def test_card_draw_buttons_custom_size_colours(): """ Ensure that customisations to the buttons text size, text colour and background colour are set as expected. """ card = Card( "title", buttons=[ { "label": "Button1", "target": "AnotherCard", "text_size": 32, "text_color": "red", "background_color": "blue", } ], ) card.layout = mock.MagicMock() card._button_click = mock.MagicMock() card._draw_buttons() assert len(card.button_widgets) == 1 assert card.button_widgets[0].text == "Button1" assert card.button_widgets[0].font_size == 32.0 assert card.button_widgets[0].color == [1.0, 0.0, 0.0, 1.0] assert card.button_widgets[0].background_color == [0.0, 0.0, 1.0, 1.0] card._button_click.assert_called_once_with("AnotherCard") assert card.layout.add_widget.call_count == 1
def test_card_draw_text(): """ Ensure the expected Label object is added to the screen's layout instance. """ card = Card("title", text="This is some text for the label...") card.layout = mock.MagicMock() card.font_size = "48sp" card._draw_text() card.layout.add_widget.assert_called_once_with(card.text_label) assert card.text_label.text == "This is some text for the label..." assert card.text_label.font_size == 48.0 assert card.text_label.markup is True assert card.text_label.color == [1.0, 1.0, 1.0, 1.0] assert card.text_label.padding == [10, 10] assert card.text_label.valign == "middle" assert card.text_label.halign == "center"
def test_card_draw_buttons(): """ Ensure the expected buttons are created and linked to an event handler. """ card = Card("title", buttons=[{ "label": "Button1", "target": "AnotherCard" }]) card.layout = mock.MagicMock() card._button_click = mock.MagicMock() card._draw_buttons() assert len(card.button_widgets) == 1 assert card.button_widgets[0].text == "Button1" card._button_click.assert_called_once_with("AnotherCard") assert card.layout.add_widget.call_count == 1
def test_card_draw_form_textarea(): """ Ensure the expected form widget and associated label are added to the screen's layout instance. """ card = Card("title", form=Inputs.TEXTAREA, text="Form label...") card.layout = mock.MagicMock() card.font_size = "48sp" card._draw_form() assert card.form_label.text == "Form label..." assert card.form_label.font_size == 48.0 assert card.form_label.markup is True assert card.form_label.color == [1.0, 1.0, 1.0, 1.0] assert card.form_label.valign == "top" assert card.form_label.halign == "left" assert card.textarea.text == "" assert card.textarea.multiline is True assert card.textarea.font_size == 48.0
def test_card_draw_buttons(): """ Ensure the expected buttons are created and linked to an event handler. """ card = Card( "title", buttons=[{"label": "Button1", "target": "AnotherCard"}] ) card.layout = mock.MagicMock() card._button_click = mock.MagicMock() card._draw_buttons() assert len(card.button_widgets) == 1 assert card.button_widgets[0].text == "Button1" assert card.button_widgets[0].color == [1.0, 1.0, 1.0, 1.0] # white. assert card.button_widgets[0].background_color == [ 0.7450980392156863, 0.7450980392156863, 0.7450980392156863, 1.0, ] # grey. assert card.button_widgets[0].font_size == 24.0 card._button_click.assert_called_once_with("AnotherCard") assert card.layout.add_widget.call_count == 1
def test_card_draw_form_slider_default_step(): """ Ensure the expected form widget and associated label are added to the screen's layout instance. """ card = Card( "title", form=Inputs.SLIDER, text="Form label...", options=(1, 100) ) card.layout = mock.MagicMock() card.font_size = "48sp" card._draw_form() assert card.form_label.text == "Form label..." assert card.form_label.font_size == 48.0 assert card.form_label.markup is True assert card.form_label.color == [1.0, 1.0, 1.0, 1.0] assert card.form_label.valign == "top" assert card.form_label.halign == "left" assert card.slider_label.text == "0" assert card.slider_label.font_size == 64.0 assert card.slider.min == 1 assert card.slider.max == 100 assert card.slider.step == 1 assert card.slider.value_track is True