Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ndeflib version 0.3.3, some tests are failing #10

Open
fantomfp opened this issue Aug 21, 2024 · 0 comments
Open

ndeflib version 0.3.3, some tests are failing #10

fantomfp opened this issue Aug 21, 2024 · 0 comments

Comments

@fantomfp
Copy link

fantomfp commented Aug 21, 2024

ndeflib version 0.3.3, some tests are failing.
python version 3.13.0
pytest version 8.3.1

/usr/bin/pytest tests/
============================= test session starts ==============================
platform linux -- Python 3.13.0rc1, pytest-8.3.1, pluggy-1.5.0
rootdir: /builddir/build/BUILD/python-ndeflib-0.3.3-build/ndeflib-0.3.3
configfile: setup.cfg
collected 1608 items
tests/test_bluetooth.py ................................................ [  2%]
......F................................................................. [  7%]
.................................................F...................... [ 11%]
.................................                                        [ 13%]
tests/test_deviceinfo.py .....................................           [ 16%]
tests/test_handover.py ......................F..F....................... [ 19%]
.............................................................F.......... [ 23%]
........................................................................ [ 28%]
........................................................................ [ 32%]
...................................................................      [ 36%]
tests/test_message.py .................................................. [ 40%]
.............                                                            [ 40%]
tests/test_record.py ................................................... [ 44%]
........................................................................ [ 48%]
.................................................                        [ 51%]
tests/test_signature.py .............................................    [ 54%]
tests/test_smartposter.py .............................................. [ 57%]
........................................................................ [ 61%]
..........................                                               [ 63%]
tests/test_text.py .............................F.F..................... [ 66%]
                                                                         [ 66%]
tests/test_uri.py ...................................................... [ 69%]
........................................................................ [ 74%]
........................................................................ [ 78%]
......                                                                   [ 79%]
tests/test_wifi.py ..................................................... [ 82%]
........................................................................ [ 87%]
........................................................................ [ 91%]
........................................................................ [ 96%]
................................................................         [100%]
=================================== FAILURES ===================================
_____________________ TestDeviceClass.test_decode[octets1] _____________________
self = <test_bluetooth.TestDeviceClass object at 0x3ffb626e580>
octets = bytearray(b'V4\x12')
    @pytest.mark.parametrize("octets", [HEX('000000'), HEX('563412')])
    def test_decode(self, octets):
        obj = ndef.bluetooth.DeviceClass.decode(octets)
>       assert obj.encode() == octets
tests/test_bluetooth.py:160: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = ndef.bluetooth.DeviceClass(0x56341200)
    def encode(self):
        """Return the encoded representation suitable for transmission.
    
        In absence of encoding errors the return value is exactly
        three bytes.
    
        """
        if 0 <= self.cod <= 0xFFFFFF:
            return struct.pack('<I', self.cod)[0:3]
        else:
            errstr = "can't encode {!r} into class of device octets"
>           raise encode_error(self, errstr, self.cod)
E           ndef.record.EncodeError: ndef.bluetooth.DeviceClass can't encode 1446253056 into class of device octets
../BUILDROOT/usr/lib/python3.13/site-packages/ndef/bluetooth.py:358: EncodeError
____________ TestBluetoothEasyPairingRecord.test_attr_device_class _____________
self = <test_bluetooth.TestBluetoothEasyPairingRecord object at 0x3ffb6232db0>
    def test_attr_device_class(self):
        obj = ndef.BluetoothEasyPairingRecord('01:02:03:04:05:06')
        assert isinstance(obj.device_class, ndef.bluetooth.DeviceClass)
        assert obj.device_class.major_device_class == 'Miscellaneous'
        assert obj.device_class.minor_device_class == 'Uncategorized'
        assert obj.device_class.major_service_class == ()
        obj.device_class = 0x20041C
>       assert obj.device_class.major_device_class == 'Audio / Video'
E       AssertionError: assert 'Miscellaneous' == 'Audio / Video'
E         
E         - Audio / Video
E         + Miscellaneous
tests/test_bluetooth.py:396: AssertionError
_ TestAlternativeCarrierRecord.test_decode_error[0001-unpack_from requires a buffer of at least 1 bytes] _
self = <test_handover.TestAlternativeCarrierRecord object at 0x3ffb645f2d0>
payload = '0001', errstr = 'unpack_from requires a buffer of at least 1 bytes'
    def test_decode_error(self, payload, errstr):
        RECORD = self.RECORD
        CLNAME = RECORD.__module__ + '.' + RECORD.__name__
        OCTETS = bytes(bytearray.fromhex(payload))
        ERRSTR = CLNAME + ' ' + errstr
        ASSERT = "assert {0}.decode_payload(hex'{1}', 'strict') ==> {2}"
        print('\n' + ASSERT.format(CLNAME, payload, ERRSTR))
        with pytest.raises(ndef.DecodeError) as excinfo:
            RECORD._decode_payload(OCTETS, 'strict')
>       assert str(excinfo.value) == ERRSTR
E       AssertionError
tests/_test_record_base.py:89: AssertionError
----------------------------- Captured stdout call -----------------------------
assert ndef.handover.AlternativeCarrierRecord.decode_payload(hex'0001', 'strict') ==> ndef.handover.AlternativeCarrierRecord unpack_from requires a buffer of at least 1 bytes
_ TestAlternativeCarrierRecord.test_decode_error[00000101-unpack_from requires a buffer of at least 1 bytes] _
self = <test_handover.TestAlternativeCarrierRecord object at 0x3ffb63bd790>
payload = '00000101'
errstr = 'unpack_from requires a buffer of at least 1 bytes'
    def test_decode_error(self, payload, errstr):
        RECORD = self.RECORD
        CLNAME = RECORD.__module__ + '.' + RECORD.__name__
        OCTETS = bytes(bytearray.fromhex(payload))
        ERRSTR = CLNAME + ' ' + errstr
        ASSERT = "assert {0}.decode_payload(hex'{1}', 'strict') ==> {2}"
        print('\n' + ASSERT.format(CLNAME, payload, ERRSTR))
        with pytest.raises(ndef.DecodeError) as excinfo:
            RECORD._decode_payload(OCTETS, 'strict')
>       assert str(excinfo.value) == ERRSTR
E       AssertionError
tests/_test_record_base.py:89: AssertionError
----------------------------- Captured stdout call -----------------------------
assert ndef.handover.AlternativeCarrierRecord.decode_payload(hex'00000101', 'strict') ==> ndef.handover.AlternativeCarrierRecord unpack_from requires a buffer of at least 1 bytes
_ TestErrorRecord.test_encode_error[args1-ubyte format requires 0 <= number <= 255] _
self = <test_handover.TestErrorRecord object at 0x3ffb63bce90>, args = (1, 256)
errstr = 'ubyte format requires 0 <= number <= 255'
    def test_encode_error(self, args, errstr):
        RECORD = self.RECORD
        CLNAME = RECORD.__module__ + '.' + RECORD.__name__
        ERRSTR = CLNAME + ' ' + errstr
        ASSERT = "assert {0}{1} ==> {2}"
        print('\n' + ASSERT.format(CLNAME, args, errstr))
        with pytest.raises(ndef.EncodeError) as excinfo:
            record = RECORD(*args)
            record = record._encode_payload()
>       assert str(excinfo.value) == ERRSTR
E       AssertionError
tests/_test_record_base.py:118: AssertionError
----------------------------- Captured stdout call -----------------------------
assert ndef.handover.ErrorRecord(1, 256) ==> ubyte format requires 0 <= number <= 255
____ TestTextRecord.test_encode_valid[args3-82656efffe480065006c006c006f00] ____
self = <test_text.TestTextRecord object at 0x3ffb6834730>
args = ('Hello', 'en', 'UTF-16'), payload = '82656efffe480065006c006c006f00'
    def test_encode_valid(self, args, payload):
        RECORD = self.RECORD
        CLNAME = RECORD.__module__ + '.' + RECORD.__name__
        OCTETS = bytes(bytearray.fromhex(payload))
        ASSERT = "assert {0}({1}).encode_payload() == hex'{2}'"
        print('\n' + ASSERT.format(CLNAME, args, payload))
        record = RECORD(*args)
>       assert record._encode_payload() == OCTETS
E       AssertionError
tests/_test_record_base.py:107: AssertionError
----------------------------- Captured stdout call -----------------------------
assert ndef.text.TextRecord(('Hello', 'en', 'UTF-16')).encode_payload() == hex'82656efffe480065006c006c006f00'
____________ TestTextRecord.test_encode_valid[args5-82656cfffe9403] ____________
self = <test_text.TestTextRecord object at 0x3ffb6834af0>
args = ('Δ', 'el', 'UTF-16'), payload = '82656cfffe9403'
    def test_encode_valid(self, args, payload):
        RECORD = self.RECORD
        CLNAME = RECORD.__module__ + '.' + RECORD.__name__
        OCTETS = bytes(bytearray.fromhex(payload))
        ASSERT = "assert {0}({1}).encode_payload() == hex'{2}'"
        print('\n' + ASSERT.format(CLNAME, args, payload))
        record = RECORD(*args)
>       assert record._encode_payload() == OCTETS
E       AssertionError
tests/_test_record_base.py:107: AssertionError
----------------------------- Captured stdout call -----------------------------
assert ndef.text.TextRecord(('Δ', 'el', 'UTF-16')).encode_payload() == hex'82656cfffe9403'
=============================== warnings summary ===============================
../../../../../usr/lib/python3.13/site-packages/_pytest/config/__init__.py:1437
  /usr/lib/python3.13/site-packages/_pytest/config/__init__.py:1437: PytestConfigWarning: Unknown config option: strict
  
    self._warn_or_fail_if_strict(f"Unknown config option: {key}\n")
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/test_bluetooth.py::TestDeviceClass::test_decode[octets1] - ndef....
FAILED tests/test_bluetooth.py::TestBluetoothEasyPairingRecord::test_attr_device_class
FAILED tests/test_handover.py::TestAlternativeCarrierRecord::test_decode_error[0001-unpack_from requires a buffer of at least 1 bytes]
FAILED tests/test_handover.py::TestAlternativeCarrierRecord::test_decode_error[00000101-unpack_from requires a buffer of at least 1 bytes]
FAILED tests/test_handover.py::TestErrorRecord::test_encode_error[args1-ubyte format requires 0 <= number <= 255]
FAILED tests/test_text.py::TestTextRecord::test_encode_valid[args3-82656efffe480065006c006c006f00]
FAILED tests/test_text.py::TestTextRecord::test_encode_valid[args5-82656cfffe9403]
================== 7 failed, 1601 passed, 1 warning in 1.95s ===================
@fantomfp fantomfp changed the title ndeflib version 0..3.3, some tests are failing ndeflib version 0.3.3, some tests are failing Aug 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant