コード例 #1
0
def test_setNumberOfBits():
    table_model = DigitalStateTableModel(allow_is_used=True)

    data_1 = ['BTN 1', 'BTN 2']

    table_model.setHalPins(['my_pin'])
    table_model.setStates(data_1)

    table_model.setNumberOfBits(1)

    assert data_1 == table_model.states()

    #set it to different number of bits
    for i in [2, 3, 4, 1, 1]:
        table_model.setNumberOfBits(i)
        arr = table_model.states()
        assert len(arr) == 2 << (i - 1)
        assert arr[0] == "BTN 1"
        assert arr[1] == "BTN 2"

    last_good_arr = table_model.states()

    #Set to some not allowed numbers
    for i in [0, -1, 5, 10]:
        with pytest.raises(ValueError):
            table_model.setNumberOfBits(i)
コード例 #2
0
def test_dataArray(good_states):
    #Check if we get the array back and start editing it that we're editing a copy and not the classes actual _data
    for data in good_states:
        table_model = DigitalStateTableModel(allow_is_used=True)
        table_model.setHalPins(data[0])
        table_model.setStates(data[1])

        returned_array = table_model.states()
        returned_array_copy = copy.deepcopy(returned_array)

        returned_array.pop()
        assert returned_array_copy == table_model.states()
コード例 #3
0
def test_setDataArray(good_states):
    for data in good_states:
        table_model = DigitalStateTableModel(allow_is_used=True)
        table_model.setHalPins(data[0])
        table_model.setStates(data[1])
        table_model.setIsUsed(data[2])

        assert data[0] == table_model.halPins()
        assert data[1] == table_model.states()
        assert data[2] == table_model.isUsed()

    table_model.setHalPins(['pin_a'])

    with pytest.raises(ValueError):
        data = ['btn_1', 'btn_2', 'btn_1_too_many']
        table_model.setStates(data)

    with pytest.raises(TypeError):
        data = [True, 'false']
        table_model.setIsUsed(data)

    with pytest.raises(TypeError):
        data = [("BTN 1", True), ("BTN 4", True)]
        table_model.setStates(data)