| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | import unittest.mockimport pytestimport intertechno_cc1101# pylint: disable=protected-access@pytest.mark.parametrize("address", (-1, 2 ** 26, 21.42))def test___init___invalid_address(address):    with pytest.raises(ValueError):        intertechno_cc1101.RemoteControl(address=address)@pytest.mark.parametrize(    ("address", "button_index", "command", "expected_message"),    ((12345678, 0, 0b00, 790123392), (2 ** 26 - 1, 0b1111, 0b01, 4294967263)),)@pytest.mark.parametrize("power_setting", (0xC6, 0x84))def test__send_command(address, button_index, command, expected_message, power_setting):    remote_control = intertechno_cc1101.RemoteControl(address=address)    with unittest.mock.patch(        "intertechno_cc1101._encode_message", return_value=b"dummy"    ) as encode_message_mock, unittest.mock.patch(        "intertechno_cc1101._cc1101_transmit"    ) as transmit_mock:        remote_control._send_command(            button_index=button_index,            command=command,            power_setting=power_setting,        )    encode_message_mock.assert_called_once_with(expected_message)    transmit_mock.assert_called_once_with(b"dummy", power_setting=power_setting)@pytest.mark.parametrize("button_index", (-1, 2 ** 6, 8.15))def test__send_command_invalid_button_index(button_index):    remote_control = intertechno_cc1101.RemoteControl(address=12345678)    with pytest.raises(ValueError):        remote_control._send_command(            button_index=button_index, command=0b01, power_setting=0xC6        )@pytest.mark.parametrize("address", [12345678])@pytest.mark.parametrize("button_index", [7])def test_turn_on(address, button_index):    remote_control = intertechno_cc1101.RemoteControl(address=address)    with unittest.mock.patch.object(        remote_control, "_send_command"    ) as send_command_mock:        remote_control.turn_on(button_index=button_index)    send_command_mock.assert_called_once_with(        button_index=button_index, command=0b01, power_setting=0xC6    )@pytest.mark.parametrize("address", [12345678])@pytest.mark.parametrize("button_index", [7])@pytest.mark.parametrize("power_setting", [0x60])def test_turn_on_custom_power(address, button_index, power_setting):    remote_control = intertechno_cc1101.RemoteControl(address=address)    with unittest.mock.patch.object(        remote_control, "_send_command"    ) as send_command_mock:        remote_control.turn_on(button_index=button_index, power_setting=power_setting)    send_command_mock.assert_called_once_with(        button_index=button_index,        command=0b01,        power_setting=power_setting,    )@pytest.mark.parametrize("address", [12345678])@pytest.mark.parametrize("button_index", [7])def test_turn_off(address, button_index):    remote_control = intertechno_cc1101.RemoteControl(address=address)    with unittest.mock.patch.object(        remote_control, "_send_command"    ) as send_command_mock:        remote_control.turn_off(button_index=button_index)    send_command_mock.assert_called_once_with(        button_index=button_index, command=0b00, power_setting=0xC6    )@pytest.mark.parametrize("address", [12345678])@pytest.mark.parametrize("button_index", [7])@pytest.mark.parametrize("power_setting", [0x60])def test_turn_off_custom_power(address, button_index, power_setting):    remote_control = intertechno_cc1101.RemoteControl(address=address)    with unittest.mock.patch.object(        remote_control, "_send_command"    ) as send_command_mock:        remote_control.turn_off(button_index=button_index, power_setting=power_setting)    send_command_mock.assert_called_once_with(        button_index=button_index,        command=0b00,        power_setting=power_setting,    )
 |