コード例 #1
0
def test_start_closing_timeout():
    # Door is open
    mock_driver = MockDriver()
    mock_driver.upper_limit_switch = True
    door_model = Door("Test door", mock_driver, 1, 0.1, 0.2)

    # trigger move
    door_model.start_door_signal()

    assert mock_driver.door_signal == True

    # The upper switch will not open for 200 ms
    # This should expire the trigger timer (100 ms)
    time.sleep(0.2)

    assert mock_driver.door_signal == False
    assert door_model.state.__class__.__name__ == "OpenState"
コード例 #2
0
def test_start_opening():
    # Door is closed
    mock_driver = MockDriver()
    mock_driver.lower_limit_switch = True
    door_model = Door("Test door", mock_driver, 1, 0.1, 0.2)

    # trigger move
    door_model.start_door_signal()

    assert mock_driver.door_signal == True

    # The lower switch opened
    mock_driver.lower_limit_switch = False
    signal(SIGNAL_LOWER_SWITCH_CHANGED).send(mock_driver)

    assert mock_driver.door_signal == False
    assert door_model.state.__class__.__name__ == "OpeningState"
コード例 #3
0
def test_start_opening_timeout():
    # Door is closed
    mock_driver = MockDriver()
    mock_driver.lower_limit_switch = True
    door_model = Door("Test door", mock_driver, 1, 0.1, 0.2)

    # trigger move
    door_model.start_door_signal()

    assert mock_driver.door_signal == True

    # The lower switch will not open for two seconds
    # This should expire the trigger timer
    time.sleep(0.2)

    assert mock_driver.door_signal == False
    assert door_model.state.__class__.__name__ == "ClosedState"