def test_init_linux_stty_set_460800(self, mocker, transport): # noqa: F811 mocker.patch('nfc.clf.pn532.Device.__init__').return_value = None mocker.patch('nfc.clf.pn532.open').return_value = ["cpuinfo"] stty = mocker.patch('os.system') stty.side_effect = [-1, 0, None] sys.platform = "linux" transport.write.return_value = None transport.read.side_effect = [ ACK(), RSP('03 32010607'), # GetFirmwareVersion ACK(), RSP('15'), # SAMConfiguration ACK(), RSP('11'), # SetSerialBaudrate ] device = nfc.clf.pn532.init(transport) assert isinstance(device, nfc.clf.pn532.Device) assert stty.mock_calls == [ call('stty -F /dev/ttyS0 921600 2> /dev/null'), call('stty -F /dev/ttyS0 460800 2> /dev/null'), call('stty -F /dev/ttyS0 115200 2> /dev/null'), ] assert transport.write.mock_calls == [call(_) for _ in [ HEX(10 * '00') + CMD('02'), # GetFirmwareVersion HEX(10 * '00') + CMD('14 010000'), # SAMConfiguration HEX(10 * '00') + CMD('10 06'), ACK(), # SetSerialBaudrate ]]
def test_init_raspi_tty_ama(self, mocker, transport): # noqa: F811 mocker.patch('nfc.clf.pn532.Device.__init__').return_value = None mocker.patch('nfc.clf.pn532.open').return_value = ["Hardware BCM270"] type(transport.tty).port = PropertyMock(return_value='/dev/ttyAMA0') stty = mocker.patch('os.system') stty.return_value = -1 sys.platform = "linux" transport.write.return_value = None transport.read.side_effect = [ ACK(), RSP('03 32010607'), # GetFirmwareVersion ACK(), RSP('15'), # SAMConfiguration ] device = nfc.clf.pn532.init(transport) assert stty.mock_calls == [ call('stty -F /dev/ttyAMA0 921600 2> /dev/null'), call('stty -F /dev/ttyAMA0 460800 2> /dev/null'), call('stty -F /dev/ttyAMA0 230400 2> /dev/null'), call('stty -F /dev/ttyAMA0 115200 2> /dev/null'), ] assert isinstance(device, nfc.clf.pn532.Device) assert transport.write.mock_calls == [call(_) for _ in [ HEX(10 * '00') + CMD('02'), # GetFirmwareVersion HEX(10 * '00') + CMD('14 010000'), # SAMConfiguration ]] assert transport.read.mock_calls == [ call(timeout=100), call(timeout=100), call(timeout=100), call(timeout=100), ]
def test_sense_dep_reduce_frame_size(self, device): device.chipset.transport.read.side_effect = [ ACK(), RSP('47 0001 66f6e98d1c13dfe56de4' '0000000732 46666d 010112' '020207ff 040164 070103'), # InJumpForPSL ACK(), RSP('09 00'), # WriteRegister ] target = nfc.clf.RemoteTarget( '106A', atr_req=HEX('D400 30313233343536373839 00000032' '46666d 010113 020207ff 040132 070107')) target = device.sense_dep(target) assert isinstance(target, nfc.clf.RemoteTarget) assert target.brty == '106A' assert target.atr_req == HEX('D400 30313233343536373839 00000022' '46666d 010113 020207ff 040132 070107') assert target.atr_res == HEX('D501 66f6e98d1c13dfe56de4 0000000722' '46666d 010112 020207ff 040164 070103') assert device.chipset.transport.write.mock_calls == [ call(_) for _ in [ CMD('46 010006 30313233343536373839 46666d' '010113 020207ff 040132 070107'), # InJumpForPSL CMD('08 63013b'), # WriteRegister ] ]
def test_init_raspi_tty_ser(self, mocker, transport): # noqa: F811 mocker.patch('nfc.clf.pn532.Device.__init__').return_value = None device_tree_model = mocker.mock_open(read_data=b"Raspberry Pi") mocker.patch('nfc.clf.pn532.open', device_tree_model) type(transport.tty).port = PropertyMock(return_value='/dev/ttyS0') stty = mocker.patch('os.system') stty.return_value = -1 sys.platform = "linux" transport.write.return_value = None transport.read.side_effect = [ ACK(), RSP('03 32010607'), # GetFirmwareVersion ACK(), RSP('15'), # SAMConfiguration ] device = nfc.clf.pn532.init(transport) assert isinstance(device, nfc.clf.pn532.Device) assert stty.mock_calls == [] assert transport.write.mock_calls == [ call(_) for _ in [ HEX(10 * '00') + CMD('02'), # GetFirmwareVersion HEX(10 * '00') + CMD('14 010000'), # SAMConfiguration ] ] assert transport.read.mock_calls == [ call(timeout=100), call(timeout=100), call(timeout=100), call(timeout=100), ]
def test_sense_dep_target_found(self, device): atr_req = HEX('D400 30313233343536373839 00000002' '46666d 010113 020207ff 040132 070107') device.chipset.transport.read.side_effect = [ ACK(), RSP('33'), # RFConfiguration ACK(), RSP('47 0001 66f6e98d1c13dfe56de4' '0000000702 46666d 010112' '020207ff 040164 070103'), # InJumpForPSL ACK(), RSP('09 00'), # WriteRegister ] target = nfc.clf.RemoteTarget('106A', atr_req=atr_req) target = device.sense_dep(target) assert isinstance(target, nfc.clf.RemoteTarget) assert target.brty == '106A' assert target.atr_req == atr_req assert target.atr_res == HEX( 'D501 66f6e98d1c13dfe56de4 0000000702' '46666d 010112 020207ff 040164 070103') assert device.chipset.transport.write.mock_calls == [call(_) for _ in [ CMD('32 020b0b0a'), # RFConfiguration CMD('46 010006 30313233343536373839 46666d' '010113 020207ff 040132 070107'), # InJumpForPSL CMD('08 63013b'), # WriteRegister ]] return target
def test_init_linux_setbaud_rsp_err(self, mocker, transport): # noqa: F811 mocker.patch('nfc.clf.pn532.Device.__init__').return_value = None mocker.patch('nfc.clf.pn532.open').return_value = ["cpuinfo"] stty = mocker.patch('os.system') stty.side_effect = [-1, 0, None] sys.platform = "linux" transport.write.return_value = None transport.read.side_effect = [ ACK(), RSP('03 32010607'), # GetFirmwareVersion ACK(), RSP('15'), # SAMConfiguration ACK(), ERR(), # SetSerialBaudrate ] with pytest.raises(IOError) as excinfo: nfc.clf.pn532.init(transport) assert excinfo.value.errno == errno.ENODEV assert stty.mock_calls == [ call('stty -F /dev/ttyS0 921600 2> /dev/null'), call('stty -F /dev/ttyS0 460800 2> /dev/null'), call('stty -F /dev/ttyS0 115200 2> /dev/null'), ] assert transport.write.mock_calls == [call(_) for _ in [ HEX(10 * '00') + CMD('02'), # GetFirmwareVersion HEX(10 * '00') + CMD('14 010000'), # SAMConfiguration HEX(10 * '00') + CMD('10 06'), # SetSerialBaudrate ]]
def test_listen_tta_not_activated(self, device): super(TestDevice, self).test_listen_tta_not_activated(device) assert device.chipset.transport.write.mock_calls == [call(_) for _ in [ CMD('08 63013f'), # WriteRegister CMD('8c 0144000102030000 0102030405060708' ' 090a0b0c0d0e0f10 1100010203040506' ' 0700000000'), # TgInitAsTarget ACK(), ]]
def test_sense_tta_target_is_tt2(self, device): target = super(TestDevice, self).test_sense_tta_target_is_tt2(device) assert target.sens_res == HEX('4400') assert device.chipset.transport.write.mock_calls == [call(_) for _ in [ CMD('4A 0100'), # InListPassiveTarget CMD('06 6303'), # ReadRegister CMD('08 63037f'), # WriteRegister ]] return target
def test_listen_dep_not_activated(self, device): super(TestDevice, self).test_listen_dep_not_activated(device) assert device.chipset.transport.write.mock_calls == [call(_) for _ in [ CMD('08 63017b6302b06303b0'), # WriteRegister CMD('8c 0201010102034001 fe01020304050600' ' 0000000000000000 0001fe0102030405' ' 0600000000'), # TgInitAsTarget ACK(), ]]
def test_sense_tta_target_is_tt1(self, device): target = super(TestDevice, self).test_sense_tta_target_is_tt1(device) assert isinstance(target, nfc.clf.RemoteTarget) assert target.rid_res == HEX('1148 B2565400') assert target.sens_res == HEX('000C') assert device.chipset.transport.write.mock_calls == [call(_) for _ in [ CMD('4A 0100'), # InListPassiveTarget CMD('06 6339'), # ReadRegister CMD('4A 0104'), # InListPassiveTarget CMD('40 0178000000000000'), # InDataExchange ]] return target
class TestChipset(base_clf_pn53x.TestChipset): @pytest.fixture() def chipset(self, transport): return nfc.clf.pn531.Chipset(transport, logger=nfc.clf.pn531.log) @pytest.mark.parametrize("mode, timeout, command", [ ("normal", 0, CMD('14 01 00')), ("virtual", 1, CMD('14 02 01')), ("wired", 2, CMD('14 03 02')), ("dual", 3, CMD('14 04 03')), ]) def test_sam_configuration(self, chipset, mode, timeout, command): chipset.transport.read.side_effect = [ACK(), RSP('15')] assert chipset.sam_configuration(mode, timeout) is None assert chipset.transport.write.mock_calls == [call(command)] assert chipset.transport.read.mock_calls == [call(100), call(100)] @pytest.mark.parametrize("wakeup_enable, command", [ ("INT0", '16 01'), ("INT1", '16 02'), ("USB", '16 04'), ("RF", '16 08'), ("HSU", '16 10'), ("SPI", '16 20'), ("INT0, INT1, RF", '16 0B'), ("SPI, HSU, USB", '16 34'), ]) def test_power_down(self, chipset, wakeup_enable, command): chipset.transport.read.side_effect = [ACK(), RSP('17 00')] assert chipset.power_down(wakeup_enable) is None assert chipset.transport.write.mock_calls == [call(CMD(command))] assert chipset.transport.read.mock_calls == [call(100), call(100)] chipset.transport.read.side_effect = [ACK(), RSP('17 01')] with pytest.raises(chipset.Error) as excinfo: chipset.power_down(wakeup_enable) assert excinfo.value.errno == 1 def test_tg_init_tama_target(self, chipset): chipset.transport.read.side_effect = [ACK(), RSP('8D 01 02 03')] mifare = HEX('010203040506') felica = HEX('010203040506070809101112131415161718') nfcid3 = HEX('01020304050607080910') gbytes = HEX('313233') args = (0x03, mifare, felica, nfcid3, gbytes, 0.5) assert chipset.tg_init_tama_target(*args) == HEX('01 02 03') assert chipset.transport.read.mock_calls == [call(100), call(500)] assert chipset.transport.write.mock_calls == [ call( CMD('8C 03 010203040506 010203040506070809101112131415161718' '01020304050607080910 313233')) ]
def test_sense_tta_large_mem_tt1(self, device): device.chipset.transport.read.side_effect = [ ACK(), RSP('4B 00'), # InListPassiveTarget ACK(), self.reg_rsp('93'), # ReadRegister ACK(), RSP('4B 01010c00b2565400'), # InListPassiveTarget ACK(), RSP('41 001248b2565400'), # InDataExchange ] assert device.sense_tta(nfc.clf.RemoteTarget('106A')) is None assert device.chipset.transport.write.mock_calls == [call(_) for _ in [ CMD('4A 0100'), # InListPassiveTarget CMD('06 6339'), # ReadRegister CMD('4A 0104'), # InListPassiveTarget CMD('40 0178000000000000'), # InDataExchange ]]
def test_init_sam_cfg_rsp_err(self, mocker, transport): # noqa: F811 mocker.patch('nfc.clf.pn532.Device.__init__').return_value = None sys.platform = "" transport.write.return_value = None transport.read.side_effect = [ ACK(), RSP('03 32010607'), # GetFirmwareVersion ACK(), ERR(), # SAMConfiguration ] with pytest.raises(IOError) as excinfo: nfc.clf.pn532.init(transport) assert excinfo.value.errno == errno.ENODEV assert transport.write.mock_calls == [call(_) for _ in [ HEX(10 * '00') + CMD('02'), # GetFirmwareVersion HEX(10 * '00') + CMD('14 010000'), # SAMConfiguration ]]
def test_sense_tta_target_is_dep(self, device): target = super(TestDevice, self).test_sense_tta_target_is_dep(device) assert target.sens_res == HEX('4400') assert device.chipset.transport.write.mock_calls == [call(_) for _ in [ CMD('4A 0100'), # InListPassiveTarget ]] return target
def test_init_linux_stty_set_none(self, mocker, transport): # noqa: F811 mocker.patch('nfc.clf.pn532.Device.__init__').return_value = None mocker.patch('nfc.clf.pn532.open').return_value = ["cpuinfo"] mocker.patch('os.system').return_value = -1 sys.platform = "linux" transport.write.return_value = None transport.read.side_effect = [ ACK(), RSP('03 32010607'), # GetFirmwareVersion ACK(), RSP('15'), # SAMConfiguration ] device = nfc.clf.pn532.init(transport) assert isinstance(device, nfc.clf.pn532.Device) assert transport.write.mock_calls == [call(_) for _ in [ HEX(10 * '00') + CMD('02'), # GetFirmwareVersion HEX(10 * '00') + CMD('14 010000'), # SAMConfiguration ]]
def device(self, transport): transport.write.return_value = None transport.read.side_effect = [ ACK(), RSP('01 00' + hexlify(bytearray(range(251))).decode()), # Diagnose ACK(), RSP('03 0304'), # GetFirmwareVersion ACK(), RSP('15'), # SAMConfiguration ACK(), RSP('13'), # SetTAMAParameters ACK(), RSP('33'), # RFConfiguration ACK(), RSP('33'), # RFConfiguration ACK(), RSP('33'), # RFConfiguration ACK(), RSP('33'), # RFConfiguration ] device = nfc.clf.pn531.init(transport) device._path = 'usb:001:001' assert isinstance(device, nfc.clf.pn531.Device) assert isinstance(device.chipset, nfc.clf.pn531.Chipset) assert transport.write.mock_calls == [ call(_) for _ in [ CMD('00 00' + hexlify(bytearray(range(251))).decode()), # Diagnose CMD('02'), # GetFirmwareVersion CMD('14 0100'), # SAMConfiguration CMD('12 00'), # SetTAMAParameters CMD('32 02000b0a'), # RFConfiguration CMD('32 0400'), # RFConfiguration CMD('32 05010001'), # RFConfiguration CMD('32 0102'), # RFConfiguration ] ] transport.write.reset_mock() transport.read.reset_mock() yield device transport.write.reset_mock() transport.read.reset_mock() transport.read.side_effect = [ ACK(), RSP('33'), # RFConfiguration ] device.close() assert transport.write.mock_calls == [ call(CMD('32 0102')), # RFConfiguration ]
def test_write_register(self, chipset, args, command): chipset.transport.read.side_effect = [ACK(), RSP('09 00')] assert chipset.write_register(*args) is None chipset.transport.read.side_effect = [ACK(), RSP('09 01')] with pytest.raises(nfc.clf.rcs956.Chipset.Error) as excinfo: chipset.write_register(*args) assert excinfo.value.errno == 0xfe assert chipset.transport.read.mock_calls == 2 * [call(100), call(250)] assert chipset.transport.write.mock_calls == 2 * [call(CMD(command))]
def test_power_down(self, chipset, wakeup_enable, command): chipset.transport.read.side_effect = [ACK(), RSP('17 00')] assert chipset.power_down(wakeup_enable) is None assert chipset.transport.write.mock_calls == [call(CMD(command))] assert chipset.transport.read.mock_calls == [call(100), call(100)] chipset.transport.read.side_effect = [ACK(), RSP('17 01')] with pytest.raises(chipset.Error) as excinfo: chipset.power_down(wakeup_enable) assert excinfo.value.errno == 1
def __test_chipset_communication_fails(self, transport): transport.write.return_value = None transport.read.side_effect = [ACK(), ERR()] # Diagnose chipset = nfc.clf.rcs956.Chipset(transport, logger=nfc.clf.rcs956.log) with pytest.raises(IOError): nfc.clf.rcs956.Device(chipset, logger=nfc.clf.rcs956.log) assert chipset.transport.write.mock_calls == [call( CMD('00 00' + ''.join(["%02x" % (x % 256) for x in range(262)]))) ]
def test_read_register(self, chipset, args, command, response, value): chipset.transport.read.side_effect = [ACK(), RSP(response)] assert chipset.read_register(*args) == value chipset.transport.read.side_effect = [ACK(), RSP('07 01')] with pytest.raises(nfc.clf.pn533.Chipset.Error) as excinfo: chipset.read_register(*args) assert excinfo.value.errno == 1 assert chipset.transport.read.mock_calls == 2 * [call(100), call(250)] assert chipset.transport.write.mock_calls == 2 * [call(CMD(command))]
def test_send_cmd_recv_rsp_tt1_fifo(self, device, cmd, crcb1, crcb2): target = self.test_sense_tta_target_is_tt1(device) device.chipset.transport.write.reset_mock() device.chipset.transport.read.reset_mock() device.chipset.transport.read.side_effect = [ ACK(), self.reg_rsp('00 00 00'), # ReadRegister ACK(), RSP('09 00'), # WriteRegister ACK(), RSP('33'), # RFConfiguration ] tt1_cmd = HEX('%s 10 0000000000000000' % cmd) + target.rid_res[2:6] with pytest.raises(nfc.clf.TransmissionError) as excinfo: device.send_cmd_recv_rsp(target, tt1_cmd, 1.0) assert str(excinfo.value) == "tt1 command can not be send" print(device.chipset.transport.read.call_count) assert device.chipset.transport.write.mock_calls == [call(_) for _ in [ CMD('06 6302 6303 6305'), # ReadRegister CMD('08 630200 630300 630540'), # WriteRegister CMD('32 020a0b0f'), # RFConfiguration ]]
def test_close_transport_type_not_tty(self, device): device.chipset.transport.TYPE = "test" transport = device.chipset.transport chipset = device.chipset transport.read.side_effect = [ACK(), RSP('1700')] device.close() assert transport.write.mock_calls == [call(ACK()), call(CMD('16b000'))] device.chipset = chipset device.chipset.transport = transport device.chipset.transport.TYPE = "TTY"
def test_sense_tta_target_tt2_cascade(self, device, sdd, sdd_res): device.chipset.transport.read.side_effect = [ ACK(), RSP('4B 01 01 0044 00' + sdd), # InListPassiveTarget ACK(), self.reg_rsp('FF'), # ReadRegister ACK(), RSP('09 00'), # WriteRegister ] target = device.sense_tta(nfc.clf.RemoteTarget('106A')) assert isinstance(target, nfc.clf.RemoteTarget) assert target.sel_res == HEX('00') assert target.sdd_res == HEX(sdd_res) assert target.sens_res == HEX('0044') # reversed for PN531 assert device.chipset.transport.write.mock_calls == [ call(_) for _ in [ CMD('4A 0100'), # InListPassiveTarget CMD('06 6303'), # ReadRegister CMD('08 63037f'), # WriteRegister ] ]
def test_sense_dep_no_target_found(self, device): atr_req = HEX('D400 30313233343536373839 00000000') device.chipset.transport.read.side_effect = [ ACK(), RSP('33'), # RFConfiguration ACK(), RSP('47 01'), # InJumpForPSL ACK(), RSP('09 00'), # WriteRegister ] target = nfc.clf.RemoteTarget('106A', atr_req=atr_req) assert device.sense_dep(target) is None assert device.chipset.transport.write.mock_calls == [call(_) for _ in [ CMD('32 020b0b0a'), # RFConfiguration CMD('46 01000230313233343536373839'), # InJumpForPSL CMD('08 63013b'), # WriteRegister ]] device.chipset.transport.read.reset_mock() device.chipset.transport.write.reset_mock() device.chipset.transport.read.side_effect = [ ACK(), RSP('33'), # RFConfiguration ACK(), RSP('47 02'), # InJumpForPSL ACK(), RSP('09 00'), # WriteRegister ] target = nfc.clf.RemoteTarget('106A', atr_req=atr_req) assert device.sense_dep(target) is None assert device.chipset.transport.write.mock_calls == [call(_) for _ in [ CMD('32 020b0b0a'), # RFConfiguration CMD('46 01000230313233343536373839'), # InJumpForPSL CMD('08 63013b'), # WriteRegister ]]
def test_listen_dep_not_activated(self, device): device.chipset.transport.read.side_effect = [ ACK(), RSP('19'), # ResetMode ACK(), RSP('09 00'), # WriteRegister ACK(), RSP('33'), # RFConfiguration ACK(), RSP('13'), # SetParameters ACK(), RSP('09 00'), # WriteRegister ACK(), IOError(errno.ETIMEDOUT, ""), # TgInitAsTarget ] target = nfc.clf.LocalTarget() target.sensf_res = HEX("01 01fe010203040506 0000000000000000 0000") target.sens_res = HEX("0101") target.sel_res = HEX("40") target.sdd_res = HEX("08010203") target.atr_res = HEX("D501 d0d1d2d3d4d5d6d7d8d9 0000000800") assert device.listen_dep(target, 0.001) is None assert device.chipset.transport.read.call_count == 12 assert device.chipset.transport.write.mock_calls == [call(_) for _ in [ CMD('18 01'), ACK(), # ResetMode CMD('08 630b80'), # WriteRegister CMD('32 82080208'), # RFConfiguration CMD('12 08'), # SetParameters CMD('08 63017b6302b06303b0'), # WriteRegister CMD('8c 0201010102034001 fe01020304050600' ' 0000000000000000 0001fe0102030405' ' 060000'), # TgInitAsTarget ACK(), ]]
def test_tg_init_as_target(self, chipset): chipset.transport.read.side_effect = [ACK(), RSP('8D 01 02 03')] mifare = HEX('010203040506') felica = HEX('010203040506070809101112131415161718') nfcid3 = HEX('01020304050607080910') gbytes = HEX('313233') args = (0x02, mifare, felica, nfcid3, gbytes, 0.5) assert chipset.tg_init_target(*args) == HEX('01 02 03') assert chipset.transport.read.mock_calls == [call(100), call(500)] assert chipset.transport.write.mock_calls == [ call(CMD('8C 02 010203040506 010203040506070809101112131415161718' '01020304050607080910 313233')) ]
def test_init_linux_version_rsp_err(self, mocker, transport): # noqa: F811 mocker.patch('nfc.clf.pn532.Device.__init__').return_value = None mocker.patch('nfc.clf.pn532.open').return_value = ["cpuinfo"] mocker.patch('os.system').return_value = -1 sys.platform = "linux" transport.write.return_value = None transport.read.side_effect = [ ACK(), ERR(), # GetFirmwareVersion ] with pytest.raises(IOError) as excinfo: nfc.clf.pn532.init(transport) assert excinfo.value.errno == errno.ENODEV assert transport.write.mock_calls == [call(_) for _ in [ HEX(10 * '00') + CMD('02'), # GetFirmwareVersion ]]
def test_send_cmd_recv_rsp_tt1_fifo(self, device, cmd_code, crcb1, crcb2): target = self.test_sense_tta_target_is_tt1(device) device.chipset.transport.write.reset_mock() device.chipset.transport.read.reset_mock() device.chipset.transport.read.side_effect = [ ACK(), self.reg_rsp('00 00 00'), # ReadRegister ACK(), RSP('09 00'), # WriteRegister ACK(), RSP('33'), # RFConfiguration ACK(), RSP('09 00'), # WriteRegister ACK(), RSP('09 00'), # WriteRegister ACK(), self.reg_rsp('05'), # ReadRegister ACK(), self.reg_rsp('00 01 1E 7D 08'), # ReadRegister ] cmd = HEX('%s 10 0000000000000000' % cmd_code) + target.rid_res[2:6] assert device.send_cmd_recv_rsp(target, cmd, 1.0) == HEX('0000') assert device.chipset.transport.write.mock_calls == [ call(_) for _ in [ CMD('06 6302 6303 6305'), # ReadRegister CMD('08 630200 630300 630540'), # WriteRegister CMD('32 020a0b0f'), # RFConfiguration CMD('08 6339%s 633d07 633104 633d00 630d30' ' 633910 633104 633107' ' 633900 633104 633107' ' 633900 633104 633107' ' 633900 633104 633107' ' 633900 633104 633107' ' 633900 633104 633107' ' 633900 633104 633107' ' 633900 633104 633107' ' 633900 633104 633107' ' 6339b2 633104 633107' ' 633956 633104 633107' ' 633954 633104 633107' ' 633900 633104 633107' ' 6339%s 633104 633107' ' 6339%s 633104 633107' ' 633108' % (cmd_code, crcb1, crcb2)), # WriteRegister CMD('08 630d20'), # WriteRegister CMD('06 633a'), # ReadRegister CMD('06 6339 6339 6339 6339 6339'), # ReadRegister ] ]
def device(self, transport): transport.write.return_value = None transport.read.side_effect = [ ACK(), RSP('19'), # ResetMode ACK(), RSP('01' '000102030405060708090a0b0c0d0e0f' '101112131415161718191a1b1c1d1e1f' '202122232425262728292a2b2c2d2e2f' '303132333435363738393a3b3c3d3e3f' '404142434445464748494a4b4c4d4e4f' '505152535455565758595a5b5c5d5e5f' '606162636465666768696a6b6c6d6e6f' '707172737475767778797a7b7c7d7e7f' '808182838485868788898a8b8c8d8e8f' '909192939495969798999a9b9c9d9e9f' 'a0a1a2a3a4a5a6a7a8a9aaabacadaeaf' 'b0b1b2b3b4b5b6b7b8b9babbbcbdbebf' 'c0c1c2c3c4c5c6c7c8c9cacbcccdcecf' 'd0d1d2d3d4d5d6d7d8d9dadbdcdddedf' 'e0e1e2e3e4e5e6e7e8e9eaebecedeeef' 'f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff' '000102030405'), # Diagnose ACK(), RSP('03 33013007'), # GetFirmwareVersion ACK(), RSP('19'), # ResetMode ACK(), RSP('33'), # RFConfiguration ACK(), RSP('33'), # RFConfiguration ACK(), RSP('33'), # RFConfiguration ACK(), RSP('33'), # RFConfiguration ACK(), RSP('33'), # RFConfiguration ACK(), RSP('13'), # SetParameters ACK(), RSP('19'), # ResetMode ACK(), RSP('09 00'), # WriteRegister ] device = nfc.clf.rcs956.init(transport) device._path = 'usb:001:001' assert isinstance(device, nfc.clf.rcs956.Device) assert isinstance(device.chipset, nfc.clf.rcs956.Chipset) assert transport.write.mock_calls == [call(_) for _ in [ ACK(), CMD('18 01'), ACK(), # ResetMode CMD('00 00' '000102030405060708090a0b0c0d0e0f' '101112131415161718191a1b1c1d1e1f' '202122232425262728292a2b2c2d2e2f' '303132333435363738393a3b3c3d3e3f' '404142434445464748494a4b4c4d4e4f' '505152535455565758595a5b5c5d5e5f' '606162636465666768696a6b6c6d6e6f' '707172737475767778797a7b7c7d7e7f' '808182838485868788898a8b8c8d8e8f' '909192939495969798999a9b9c9d9e9f' 'a0a1a2a3a4a5a6a7a8a9aaabacadaeaf' 'b0b1b2b3b4b5b6b7b8b9babbbcbdbebf' 'c0c1c2c3c4c5c6c7c8c9cacbcccdcecf' 'd0d1d2d3d4d5d6d7d8d9dadbdcdddedf' 'e0e1e2e3e4e5e6e7e8e9eaebecedeeef' 'f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff' '000102030405'), # Diagnose CMD('02'), # GetFirmwareVersion CMD('18 01'), ACK(), # ResetMode CMD('32 0102'), # RFConfiguration CMD('32 020b0b0a'), # RFConfiguration CMD('32 0400'), # RFConfiguration CMD('32 05000001'), # RFConfiguration CMD('32 0a5af43f114d85616f266287'), # RFConfiguration CMD('12 08'), # SetParameters CMD('18 01'), ACK(), # ResetMode CMD('08 032859'), # WriteRegister ]] transport.write.reset_mock() transport.read.reset_mock() yield device transport.write.reset_mock() transport.read.reset_mock() transport.read.side_effect = [ ACK(), RSP('19'), # ResetMode ACK(), RSP('33'), # RFConfiguration ] device.close() assert transport.write.mock_calls == [call(_) for _ in [ CMD('18 01'), ACK(), # ResetMode CMD('32 0102'), # RFConfiguration ]]
def test_read_register(self, chipset, args, command, response, value): chipset.transport.read.side_effect = [ACK(), RSP(response)] assert chipset.read_register(*args) == value assert chipset.transport.read.mock_calls == [call(100), call(250)] assert chipset.transport.write.mock_calls == [call(CMD(command))]