Esempio n. 1
0
 def setUp(self):
     self.transport = proto_helpers.StringTransportWithDisconnection()
     self.clock     = task.Clock()
     self.factory   = MQTTFactory(MQTTFactory.PUBLISHER)
     self.protocol  = MQTTBaseProtocol(self.factory)
     self.transport.protocol = self.protocol
     MQTTBaseProtocol.callLater = self.clock.callLater
     self.protocol.makeConnection(self.transport)
Esempio n. 2
0
 def setUp(self):
     self.transport = proto_helpers.StringTransportWithDisconnection()
     self.clock     = task.Clock()
     self.factory   = MQTTFactory(MQTTFactory.PUBLISHER)
     self.protocol  = MQTTBaseProtocol(self.factory)
     self.transport.protocol = self.protocol
     MQTTBaseProtocol.callLater = self.clock.callLater
     self.protocol.makeConnection(self.transport)
Esempio n. 3
0
class TestMQTTBaseProtocol1(unittest.TestCase):

    def setUp(self):
        self.transport = proto_helpers.StringTransportWithDisconnection()
        self.clock     = task.Clock()
        self.factory   = MQTTFactory(MQTTFactory.PUBLISHER)
        self.protocol  = MQTTBaseProtocol(self.factory)
        self.transport.protocol = self.protocol
        MQTTBaseProtocol.callLater = self.clock.callLater
        self.protocol.makeConnection(self.transport)
       

    def test_connect(self):
        self.CONNACK = CONNACK()
        self.CONNACK.session = False
        self.CONNACK.resultCode = 0
        self.CONNACK.encode()
        d = self.protocol.connect("TwistedMQTT-pub", keepalive=0, version=v31)
        self.transport.clear()
        self.assertEqual(self.protocol.state, MQTTBaseProtocol.CONNECTING)
        self.protocol.dataReceived(self.CONNACK.encoded)
        self.assertEqual(self.protocol.state, MQTTBaseProtocol.CONNECTED)
        self.assertEqual(self.CONNACK.session, self.successResultOf(d))
 

    def test_connect_timeout(self):
        d = self.protocol.connect("TwistedMQTT-pub", keepalive=0, version=v31)
        self.transport.clear()
        self.assertEqual(self.protocol.state, MQTTBaseProtocol.CONNECTING)
        self.assertNoResult(d)
        self.clock.advance(11)
        self.failureResultOf(d).trap(MQTTTimeoutError)
Esempio n. 4
0
class TestMQTTBaseProtocol1(unittest.TestCase):

    def setUp(self):
        self.transport = proto_helpers.StringTransportWithDisconnection()
        self.clock     = task.Clock()
        self.factory   = MQTTFactory(MQTTFactory.PUBLISHER)
        self.protocol  = MQTTBaseProtocol(self.factory)
        self.transport.protocol = self.protocol
        MQTTBaseProtocol.callLater = self.clock.callLater
        self.protocol.makeConnection(self.transport)
       

    def test_connect(self):
        self.CONNACK = CONNACK()
        self.CONNACK.session = False
        self.CONNACK.resultCode = 0
        self.CONNACK.encode()
        d = self.protocol.connect("TwistedMQTT-pub", keepalive=0, version=v31)
        self.transport.clear()
        self.assertEqual(self.protocol.state, self.protocol.CONNECTING)
        self.protocol.dataReceived(self.CONNACK.encoded)
        self.assertEqual(self.protocol.state, self.protocol.CONNECTED)
        self.assertEqual(self.CONNACK.session, self.successResultOf(d))
 

    def test_connect_timeout(self):
        d = self.protocol.connect("TwistedMQTT-pub", keepalive=0, version=v31)
        self.transport.clear()
        self.assertEqual(self.protocol.state, self.protocol.CONNECTING)
        self.assertNoResult(d)
        self.clock.advance(11)
        self.failureResultOf(d).trap(MQTTTimeoutError)
Esempio n. 5
0
class TestMQTTBaseExceptions(unittest.TestCase):

    def setUp(self):
        self.transport = proto_helpers.StringTransportWithDisconnection()
        self.clock     = task.Clock()
        self.factory   = MQTTFactory(MQTTFactory.PUBLISHER)
        self.protocol  = MQTTBaseProtocol(self.factory)
        self.transport.protocol = self.protocol
        MQTTBaseProtocol.callLater = self.clock.callLater
        self.protocol.makeConnection(self.transport)
       

    def test_connect_version(self):
        clientId="1234567890ABCDEFGHIJ1234567890"
        d = self.protocol.connect(clientId, keepalive=0, version=0)
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, MQTTBaseProtocol.IDLE)

    def test_connect_client_id_v31(self):
        clientId="1234567890ABCDEFGHIJ1234567890"
        d = self.protocol.connect(clientId, keepalive=0, version=v31)
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, MQTTBaseProtocol.IDLE)

    def test_connect_client_id_v311(self):
        clientId="1234567890ABCDEFGHIJ1234567890"*3000
        d = self.protocol.connect(clientId, keepalive=0, version=v311)
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, MQTTBaseProtocol.IDLE)

    def test_connect_keepalive_negative(self):
        clientId="1234567890A"
        d = self.protocol.connect(clientId, keepalive=-1, version=v31)
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, MQTTBaseProtocol.IDLE)

    def test_connect_keepalive_large(self):
        clientId="1234567890A"
        d = self.protocol.connect(clientId, keepalive=65537, version=v31)
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, MQTTBaseProtocol.IDLE)

    def test_connect_will_qos_large(self):
        clientId="1234567890A"
        d = self.protocol.connect(clientId, keepalive=0, version=v31, willQoS=5)
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, MQTTBaseProtocol.IDLE)

    def test_connect_will_qos_negative(self):
        clientId="1234567890A"
        d = self.protocol.connect(clientId, keepalive=0, version=v31, willQoS=-1)
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, MQTTBaseProtocol.IDLE)

    def test_connect_no_username_with_password(self):
        clientId="1234567890A"
        d = self.protocol.connect(clientId, keepalive=0, version=v31, password="******")
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, MQTTBaseProtocol.IDLE)
    
    def test_connect_will_topic_no_message(self):
        clientId="1234567890A"
        d = self.protocol.connect(clientId, keepalive=0, version=v31, willTopic="foo/bar")
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, MQTTBaseProtocol.IDLE)

    def test_connect_will_message_no_topic(self):
        clientId="1234567890A"
        d = self.protocol.connect(clientId, keepalive=0, version=v31, willMessage="Hello")
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, MQTTBaseProtocol.IDLE)
    
    def test_window_size_large(self):
        self.assertRaises(ValueError, self.protocol.setWindowSize, 32)

    def test_window_size_negative(self):
        self.assertRaises(ValueError, self.protocol.setWindowSize, -1)

    def test_timeout_large(self):
        self.assertRaises(ValueError, self.protocol.setTimeout, 65536)

    def test_timeout_negative(self):
        self.assertRaises(ValueError, self.protocol.setTimeout, -1)
   
       
 
        
Esempio n. 6
0
class TestMQTTBaseExceptions(unittest.TestCase):

    def setUp(self):
        self.transport = proto_helpers.StringTransportWithDisconnection()
        self.clock     = task.Clock()
        self.factory   = MQTTFactory(MQTTFactory.PUBLISHER)
        self.protocol  = MQTTBaseProtocol(self.factory)
        self.transport.protocol = self.protocol
        MQTTBaseProtocol.callLater = self.clock.callLater
        self.protocol.makeConnection(self.transport)
       

    def test_connect_version(self):
        clientId="1234567890ABCDEFGHIJ1234567890"
        d = self.protocol.connect(clientId, keepalive=0, version=0)
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, self.protocol.IDLE)

    def test_connect_client_id_v31(self):
        clientId="1234567890ABCDEFGHIJ1234567890"
        d = self.protocol.connect(clientId, keepalive=0, version=v31)
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, self.protocol.IDLE)

    def test_connect_client_id_v311(self):
        clientId="1234567890ABCDEFGHIJ1234567890"*3000
        d = self.protocol.connect(clientId, keepalive=0, version=v311)
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, self.protocol.IDLE)

    def test_connect_keepalive_negative(self):
        clientId="1234567890A"
        d = self.protocol.connect(clientId, keepalive=-1, version=v31)
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, self.protocol.IDLE)

    def test_connect_keepalive_large(self):
        clientId="1234567890A"
        d = self.protocol.connect(clientId, keepalive=65537, version=v31)
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, self.protocol.IDLE)

    def test_connect_will_qos_large(self):
        clientId="1234567890A"
        d = self.protocol.connect(clientId, keepalive=0, version=v31, willQoS=5)
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, self.protocol.IDLE)

    def test_connect_will_qos_negative(self):
        clientId="1234567890A"
        d = self.protocol.connect(clientId, keepalive=0, version=v31, willQoS=-1)
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, self.protocol.IDLE)

    def test_connect_no_username_with_password(self):
        clientId="1234567890A"
        d = self.protocol.connect(clientId, keepalive=0, version=v31, password="******")
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, self.protocol.IDLE)
    
    def test_connect_will_topic_no_message(self):
        clientId="1234567890A"
        d = self.protocol.connect(clientId, keepalive=0, version=v31, willTopic="foo/bar")
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, self.protocol.IDLE)

    def test_connect_will_message_no_topic(self):
        clientId="1234567890A"
        d = self.protocol.connect(clientId, keepalive=0, version=v31, willMessage="Hello")
        self.failureResultOf(d).trap(ValueError)
        self.assertEqual(self.protocol.state, self.protocol.IDLE)
    
    def test_window_size_large(self):
        self.assertRaises(ValueError, self.protocol.setWindowSize, 32)

    def test_window_size_negative(self):
        self.assertRaises(ValueError, self.protocol.setWindowSize, -1)

    def test_timeout_large(self):
        self.assertRaises(ValueError, self.protocol.setTimeout, 65536)

    def test_timeout_negative(self):
        self.assertRaises(ValueError, self.protocol.setTimeout, -1)