Skip to content

Commit

Permalink
All of pn53x sense_tta tested.
Browse files Browse the repository at this point in the history
  • Loading branch information
nehpetsde committed Mar 21, 2017
1 parent 39518b0 commit 4641571
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 1 deletion.
49 changes: 49 additions & 0 deletions tests/base_clf_pn53x.py
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,55 @@ def pn53x_test_sense_tta_target_is_tt2(self, device):
assert target.sdd_res == HEX('0416C6C2D73881')
return target

def pn53x_test_sense_tta_target_is_dep(self, device):
device.chipset.transport.read.side_effect = [
ACK(), RSP('4B 0101004440070416c6c2d73881'), # InListPassiveTarget
]
target = device.sense_tta(nfc.clf.RemoteTarget('106A'))
assert isinstance(target, nfc.clf.RemoteTarget)
assert target.sel_res == HEX('40')
assert target.sdd_res == HEX('0416C6C2D73881')
return target

def test_sense_tta_unsupported_bitrate(self, device):
with pytest.raises(ValueError) as excinfo:
device.sense_tta(nfc.clf.RemoteTarget('100A'))
assert str(excinfo.value) == "unsupported bitrate 100A"

@pytest.mark.parametrize("uid, initiator_data", [
('01020304', '01020304'),
('01020304050607', '8801020304050607'),
('01020304050607080910', '880102038804050607080910'),
])
def test_sense_tta_send_with_uid(self, device, uid, initiator_data):
device.chipset.transport.read.side_effect = [
ACK(), RSP('4B 00'), # InListPassiveTarget
ACK(), self.reg_rsp('26'), # ReadRegister
]
target = nfc.clf.RemoteTarget('106A', sel_req=HEX(uid))
assert device.sense_tta(target) is None
assert device.chipset.transport.write.mock_calls == [call(_) for _ in [
CMD('4A 0100' + initiator_data), # InListPassiveTarget
CMD('06 6339'), # ReadRegister
]]

def test_sense_tta_rid_response_error(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 01'), # InDataExchange
]
assert device.sense_tta(nfc.clf.RemoteTarget('106A')) is None

def test_sense_tta_tt1_response_timeout(self, device):
device.chipset.transport.read.side_effect = [
ACK(), RSP('4B 00'), # InListPassiveTarget
ACK(), self.reg_rsp('93'), # ReadRegister
ACK(), RSP('4B 00'), # InListPassiveTarget
]
assert device.sense_tta(nfc.clf.RemoteTarget('106A')) is None

def pn53x_test_sense_ttb_no_target_found(self, device):
device.chipset.transport.read.side_effect = [
ACK(), RSP('4B 00'), # InListPassiveTarget
Expand Down
9 changes: 8 additions & 1 deletion tests/test_clf_pn531.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,11 +139,18 @@ def test_sense_tta_target_is_tt2(self, device):
CMD('08 63037f'), # WriteRegister
]]

def test_sense_tta_target_is_dep(self, device):
target = self.pn53x_test_sense_tta_target_is_dep(device)
assert target.sens_res == HEX('0044')
assert device.chipset.transport.write.mock_calls == [call(_) for _ in [
CMD('4A 0100'), # InListPassiveTarget
]]

@pytest.mark.parametrize("sdd, sdd_res", [
('088801020304050607', '01020304050607'),
('0c880102038804050607080910', '01020304050607080910'),
])
def test_sense_tta_target_tt2_ct1(self, device, sdd, sdd_res):
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
Expand Down
7 changes: 7 additions & 0 deletions tests/test_clf_pn532.py
Original file line number Diff line number Diff line change
Expand Up @@ -493,6 +493,13 @@ def test_sense_tta_target_is_tt2(self, device):
CMD('08 63037f'), # WriteRegister
]]

def test_sense_tta_target_is_dep(self, device):
target = self.pn53x_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
]]

def test_sense_ttb_no_target_found(self, device):
self.pn53x_test_sense_ttb_no_target_found(device)

Expand Down
7 changes: 7 additions & 0 deletions tests/test_clf_pn533.py
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,13 @@ def test_sense_tta_target_is_tt2(self, device):
CMD('08 63037f'), # WriteRegister
]]

def test_sense_tta_target_is_dep(self, device):
target = self.pn53x_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
]]

def test_sense_ttb_no_target_found(self, device):
self.pn53x_test_sense_ttb_no_target_found(device)

Expand Down

0 comments on commit 4641571

Please sign in to comment.