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)
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()
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)