Exemplo n.º 1
0
 def test_transceive_communication_errors(self, tag, clf_error, tag_error):
     tag.clf.exchange.side_effect = clf_error
     with pytest.raises(nfc.tag.tt2.Type2TagCommandError) as excinfo:
         tag.transceive(b'\x01')
     assert excinfo.value.errno == tag_error
     tag.clf.exchange.assert_called_with(HEX('01'), 0.1)
     assert tag.clf.exchange.call_count == 3
Exemplo n.º 2
0
 def test_transceive_error(self, tag, exception, message):
     tag.clf.exchange.side_effect = exception
     with pytest.raises(nfc.tag.tt1.Type1TagCommandError) as excinfo:
         tag.transceive(HEX('01'))
     assert str(excinfo.value) == message
     tag.clf.exchange.assert_called_with(HEX('01'), 0.1)
     assert tag.clf.exchange.call_count == 3
Exemplo n.º 3
0
 def test_transceive_communication_errors(self, tag, clf_error, tag_error):
     tag.clf.exchange.side_effect = clf_error
     with pytest.raises(nfc.tag.tt2.Type2TagCommandError) as excinfo:
         tag.transceive(b'\x01')
     assert excinfo.value.errno == tag_error
     tag.clf.exchange.assert_called_with(HEX('01'), 0.1)
     assert tag.clf.exchange.call_count == 3
Exemplo n.º 4
0
 def test_transceive_with_runtime_error(self, tag):
     tag.clf.exchange.side_effect = nfc.clf.CommunicationError
     with pytest.raises(RuntimeError) as excinfo:
         tag.transceive(HEX('01'))
     assert repr(excinfo.value) == \
         "RuntimeError('unexpected CommunicationError()',)"
     tag.clf.exchange.assert_called_with(HEX('01'), 0.1)
     assert tag.clf.exchange.call_count == 3
Exemplo n.º 5
0
 def test_transceive_with_runtime_error(self, tag):
     tag.clf.exchange.side_effect = nfc.clf.CommunicationError
     with pytest.raises(RuntimeError) as excinfo:
         tag.transceive(b'\x01')
     assert repr(excinfo.value) == \
         "RuntimeError('unexpected CommunicationError()',)"
     tag.clf.exchange.assert_called_with(HEX('01'), 0.1)
     assert tag.clf.exchange.call_count == 3
Exemplo n.º 6
0
 def test_transceive_timeout_value(self, tag, timeout_value):
     commands = [
         (HEX('01'), 0.1),
         (HEX('02'), timeout_value),
         (HEX('03'), timeout_value),
     ]
     responses = [
         HEX('10'),
         HEX('20'),
         HEX('30'),
     ]
     tag.clf.exchange.side_effect = responses
     assert tag.transceive(HEX('01')) == HEX('10')
     assert tag.transceive(HEX('02'), timeout_value) == HEX('20')
     assert tag.transceive(HEX('03'), timeout=timeout_value) == HEX('30')
     assert tag.clf.exchange.mock_calls == [call(*_) for _ in commands]
Exemplo n.º 7
0
 def test_transceive_timeout_value(self, tag, timeout_value):
     commands = [
         (HEX('01'), 0.1),
         (HEX('02'), timeout_value),
         (HEX('03'), timeout_value),
     ]
     responses = [
         HEX('10'),
         HEX('20'),
         HEX('30'),
     ]
     tag.clf.exchange.side_effect = responses
     assert tag.transceive(HEX('01')) == HEX('10')
     assert tag.transceive(HEX('02'), timeout_value) == HEX('20')
     assert tag.transceive(HEX('03'), timeout=timeout_value) == HEX('30')
     assert tag.clf.exchange.mock_calls == [mock.call(*_) for _ in commands]
Exemplo n.º 8
0
    def test_transceive_number_of_retries(self, tag, number_of_retries):
        commands = number_of_retries * [
            (HEX('01'), 0.1),
        ] + [
            (HEX('01'), 0.1),
        ]
        responses = number_of_retries * [nfc.clf.CommunicationError] + [
            HEX('10'),
        ]
        tag.clf.exchange.side_effect = responses
        assert tag.transceive(b'\x01', retries=number_of_retries) == b'\x10'
        assert tag.clf.exchange.mock_calls == [call(*_) for _ in commands]

        tag.clf.exchange.reset_mock()
        tag.clf.exchange.side_effect = responses
        assert tag.transceive(b'\x01', 0.1, number_of_retries) == b'\x10'
        assert tag.clf.exchange.mock_calls == [call(*_) for _ in commands]
Exemplo n.º 9
0
    def test_transceive_number_of_retries(self, tag, number_of_retries):
        commands = number_of_retries * [
            (HEX('01'), 0.1),
        ] + [
            (HEX('01'), 0.1),
        ]
        responses = number_of_retries * [
            nfc.clf.CommunicationError
        ] + [
            HEX('10'),
        ]
        tag.clf.exchange.side_effect = responses
        assert tag.transceive(b'\x01', retries=number_of_retries) == b'\x10'
        assert tag.clf.exchange.mock_calls == [mock.call(*_) for _ in commands]

        tag.clf.exchange.reset_mock()
        tag.clf.exchange.side_effect = responses
        assert tag.transceive(b'\x01', 0.1, number_of_retries) == b'\x10'
        assert tag.clf.exchange.mock_calls == [mock.call(*_) for _ in commands]
Exemplo n.º 10
0
 def test_transceive_target_gone(self, tag):
     tag._target = None
     with pytest.raises(nfc.tag.tt2.Type2TagCommandError) as excinfo:
         tag.transceive(HEX('00'))
     assert excinfo.value.errno == nfc.tag.TIMEOUT_ERROR
Exemplo n.º 11
0
 def test_transceive_error(self, tag, exception, message):
     tag.clf.exchange.side_effect = exception
     with pytest.raises(nfc.tag.tt1.Type1TagCommandError) as excinfo:
         tag.transceive(bytearray(8))
     assert str(excinfo.value) == message
     assert tag.clf.exchange.call_count == 3
Exemplo n.º 12
0
 def test_transceive_target_gone(self, tag):
     tag._target = None
     with pytest.raises(nfc.tag.tt2.Type2TagCommandError) as excinfo:
         tag.transceive(HEX('00'))
     assert excinfo.value.errno == nfc.tag.TIMEOUT_ERROR