Esempio n. 1
0
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"
Esempio n. 2
0
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
Esempio n. 3
0
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"
Esempio n. 4
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"
    card._button_click.assert_called_once_with("AnotherCard")
    assert card.layout.add_widget.call_count == 1
Esempio n. 5
0
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
Esempio n. 6
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
Esempio n. 7
0
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