Exemplo n.º 1
0
 def __init__(self,
              text=None,
              speech=None,
              time=None,
              colour=None,
              on_press=None,
              on_timeout=None,
              wait_for_press=None,
              start=None,
              stop=None):
     from thebutton.parser import parse_element
     self.text = text
     self.speech = speech
     self.time = int(time) if time is not None else None
     if colour is None or (isinstance(colour, str)
                           and colour.lower() in ("red", "green")):
         self.colour = colour.lower() if colour is not None else None
     else:
         raise ValueError("Unknown colour for button '{}'".format(colour))
     self.on_press = list(
         parse_element(on_press)) if on_press is not None else None
     self.on_timeout = list(
         parse_element(on_timeout)) if on_timeout is not None else None
     self.wait_for_press = bool(wait_for_press)
     if self.on_press is not None and self.wait_for_press != True:
         raise ValueError(
             "You should only set on_press if wait_for_press is set to True"
         )
     if self.on_timeout is not None and self.time is None:
         raise ValueError("You should only set on_timeout if time is set")
     self.start = bool(start) if start is not None else None
     self.stop = bool(stop) if stop is not None else None
Exemplo n.º 2
0
def test_parse_element_nested_lists_of_strings():
    result = list(parse_element([["hello", [["world"]]]]))
    assert len(result) == 2
    assert isinstance(result[0], GenericStep)
    assert result[0].text == "hello"
    assert isinstance(result[1], GenericStep)
    assert result[1].text == "world"
Exemplo n.º 3
0
def test_parse_element_bang_wait_30():
    result = list(parse_element("!wait:30"))
    assert len(result) == 1
    assert isinstance(result[0], GenericStep)
    assert result[0].time == 30
Exemplo n.º 4
0
def test_parse_element_bang_start():
    result = list(parse_element("!button"))
    assert len(result) == 1
    assert isinstance(result[0], GenericStep)
    assert result[0].wait_for_press == True
Exemplo n.º 5
0
def test_parse_element_bang_start():
    result = list(parse_element("!start"))
    assert len(result) == 1
    assert isinstance(result[0], GenericStep)
    assert result[0].start == True
Exemplo n.º 6
0
def test_parse_element_bang_red():
    result = list(parse_element("!green"))
    assert len(result) == 1
    assert isinstance(result[0], GenericStep)
    assert result[0].text is None
    assert result[0].colour == "green"
Exemplo n.º 7
0
def test_parse_element_list_of_one_string():
    result = list(parse_element(["hello"]))
    assert len(result) == 1
    assert isinstance(result[0], GenericStep)
    assert result[0].text == "hello"
Exemplo n.º 8
0
def test_parse_element_bang_unknown_parameterised_spaces():
    with pytest.raises(ValueError) as err:
        list(parse_element(" ! monkey : 100 : 200 : hello : world : "))
    assert str(err.value) == "Unknown step type: 'monkey'"
Exemplo n.º 9
0
def test_parse_element_bang_unknown_spaces():
    with pytest.raises(ValueError) as err:
        list(parse_element(" ! monkey "))
    assert str(err.value) == "Unknown step type: 'monkey'"
Exemplo n.º 10
0
def test_parse_element_bang_challenge_complete_upper():
    result = list(parse_element("!Challenge Complete"))
    assert len(result) == 1
    assert result[0] is ChallengeComplete
Exemplo n.º 11
0
def test_parse_element_bang_wait_10_space_after_colon():
    result = list(parse_element("!wait: 10"))
    assert len(result) == 1
    assert isinstance(result[0], GenericStep)
    assert result[0].time == 10
Exemplo n.º 12
0
def test_parse_element_bang_red_space_after_bang():
    result = list(parse_element("! red"))
    assert len(result) == 1
    assert isinstance(result[0], GenericStep)
    assert result[0].text is None
    assert result[0].colour == "red"