File: test_reasoncodes.py

package info (click to toggle)
python-paho-mqtt 2.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,248 kB
  • sloc: python: 8,765; sh: 48; makefile: 40
file content (47 lines) | stat: -rw-r--r-- 1,998 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import pytest
from paho.mqtt.packettypes import PacketTypes
from paho.mqtt.reasoncodes import ReasonCode, ReasonCodes


class TestReasonCode:
    def test_equality(self):
        rc_success = ReasonCode(PacketTypes.CONNACK, "Success")
        assert rc_success == 0
        assert rc_success == "Success"
        assert rc_success != "Protocol error"
        assert rc_success == ReasonCode(PacketTypes.CONNACK, "Success")

        rc_protocol_error = ReasonCode(PacketTypes.CONNACK, "Protocol error")
        assert rc_protocol_error == 130
        assert rc_protocol_error == "Protocol error"
        assert rc_protocol_error != "Success"
        assert rc_protocol_error == ReasonCode(PacketTypes.CONNACK, "Protocol error")

    def test_comparison(self):
        rc_success = ReasonCode(PacketTypes.CONNACK, "Success")
        rc_protocol_error = ReasonCode(PacketTypes.CONNACK, "Protocol error")

        assert not rc_success > 0
        assert rc_protocol_error > 0
        assert not rc_success != 0
        assert rc_protocol_error != 0

    def test_compatibility(self):
        rc_success = ReasonCode(PacketTypes.CONNACK, "Success")
        with pytest.deprecated_call():
            rc_success_old = ReasonCodes(PacketTypes.CONNACK, "Success")
        assert rc_success == rc_success_old

        assert isinstance(rc_success, ReasonCode)
        assert isinstance(rc_success_old, ReasonCodes)
        # User might use isinstance with the old name (plural)
        # while the library give them a ReasonCode (singular) in the callbacks
        assert isinstance(rc_success, ReasonCodes)
        # The other way around is probably never used... but still support it
        assert isinstance(rc_success_old, ReasonCode)

        # Check that isinstance implementation don't always return True
        assert not isinstance(rc_success, dict)
        assert not isinstance(rc_success_old, dict)
        assert not isinstance({}, ReasonCode)
        assert not isinstance({}, ReasonCodes)