Example #1
0
 def test_reply_succeeded(self):
     url = 'test-url'
     content = ''
     properties = {'qmf.opcode': ''}
     reply = Mock(content=content, properties=properties)
     method = Method(url, '', {})
     method.on_reply(reply)
Example #2
0
    def test_repair(self, _connection, close, uuid):
        url = 'url-test'
        uuid.return_value = '5138'
        connection = Mock()
        _connection.return_value = connection
        session = Mock()
        session.close.side_effect = ValueError
        sender = Mock()
        sender.close.side_effect = ValueError
        receiver = Mock()
        receiver.close.side_effect = ValueError
        connection.session.return_value = session
        session.receiver.return_value = receiver
        session.sender.return_value = sender
        reply_to = model.REPLY_TO % uuid.return_value

        # test
        method = Method(url, '', {})
        method.repair()

        # validation
        close.assert_called_once_with()
        connection.close.assert_called_once_with()
        connection.open.assert_called_once_with()
        session.sender.assert_called_once_with(model.ADDRESS)
        session.receiver.assert_called_once_with(reply_to)
        self.assertEqual(method.connection, connection)
        self.assertEqual(method.sender, sender)
        self.assertEqual(method.receiver, receiver)
Example #3
0
    def test_open_already(self):
        # test
        method = Method('', '', {})
        method.is_open = Mock(return_value=True)
        method.open()

        # validation
        self.assertFalse(method.connection.open.called)
Example #4
0
 def test_reply_already_exists(self):
     url = 'test-url'
     values = {'error_code': model.EEXIST, 'error_text': 'just failed'}
     content = {'_values': values}
     properties = {'qmf.opcode': '_exception'}
     reply = Mock(content=content, properties=properties)
     method = Method(url, '', {})
     method.on_reply(reply)
Example #5
0
 def test_reply_succeeded(self):
     url = 'test-url'
     content = ''
     properties = {
         'qmf.opcode': ''
     }
     reply = Mock(content=content, properties=properties)
     method = Method(url, '', {})
     method.on_reply(reply)
Example #6
0
    def test_call(self, message, uuid):
        url = 'url-test'
        name = model.CREATE
        arguments = {'a': 1}

        # test
        method = Method(url, name, arguments)
        method.reply_to = '234'
        method.open = Mock()
        method.close = Mock()
        method.session = Mock()
        method.sender = Mock()
        method.receiver = Mock()
        method.on_reply = Mock()
        method()

        # validation
        method.open.assert_called_once_with()
        message.assert_called_once_with(
            content=method.content,
            reply_to=method.reply_to,
            properties=method.properties,
            correlation_id=str(uuid.return_value).encode(),
            subject=model.SUBJECT
        )

        method.session.acknowledge.assert_called_once_with()
        method.sender.send.assert_called_once_with(message.return_value)
        method.on_reply.assert_called_once_with(method.receiver.fetch.return_value)
        method.close.assert_called_once_with()
Example #7
0
 def test_reply_already_exists(self):
     url = 'test-url'
     values = {
         'error_code': model.EEXIST,
         'error_text': 'just failed'
     }
     content = {'_values': values}
     properties = {
         'qmf.opcode': '_exception'
     }
     reply = Mock(content=content, properties=properties)
     method = Method(url, '', {})
     method.on_reply(reply)
Example #8
0
 def test_reply_failed(self):
     url = 'test-url'
     values = {'error_code': 18, 'error_text': 'just failed'}
     content = {'_values': values}
     properties = {'qmf.opcode': '_exception'}
     reply = Mock(content=content, properties=properties)
     method = Method(url, '', {})
     self.assertRaises(Error, method.on_reply, reply)
Example #9
0
 def test_properties(self):
     url = 'test-url'
     method = Method(url, model.CREATE, {})
     self.assertEqual(
         method.properties, {
             'qmf.opcode': '_method_request',
             'x-amqp-0-10.app-id': 'qmf2',
             'method': 'request'
         })
Example #10
0
 def test_content(self):
     url = 'test-url'
     name = model.CREATE
     arguments = {'a': 1}
     method = Method(url, name, arguments)
     self.assertEqual(
         method.content, {
             '_object_id': model.OBJECT_ID,
             '_method_name': name,
             '_arguments': arguments
         })
Example #11
0
 def test_init(self, _connection):
     url = 'test-url'
     name = model.CREATE
     arguments = {'a': 1}
     method = Method(url, name, arguments)
     _connection.assert_called_once_with(url)
     self.assertEqual(method.url, url)
     self.assertEqual(method.name, name)
     self.assertEqual(method.arguments, arguments)
     self.assertEqual(method.connection, _connection.return_value)
     self.assertEqual(method.session, None)
     self.assertEqual(method.sender, None)
     self.assertEqual(method.receiver, None)
Example #12
0
    def test_close(self):
        connection = Mock()
        session = Mock(connection=connection)
        sender = Mock()
        receiver = Mock()
        method = Method('', '', {})
        method.connection = connection
        method.session = session
        method.sender = sender
        method.receiver = receiver

        # test
        method.close()

        # validation
        receiver.close.assert_called_once_with()
        sender.close.assert_called_once_with()
        session.close.assert_called_once_with()
        self.assertFalse(connection.close.called)
Example #13
0
    def test_close(self):
        connection = Mock()
        session = Mock(connection=connection)
        sender = Mock()
        receiver = Mock()
        method = Method('', '', {})
        method.connection = connection
        method.session = session
        method.sender = sender
        method.receiver = receiver

        # test
        method.close()

        # validation
        receiver.close.assert_called_once_with()
        sender.close.assert_called_once_with()
        session.close.assert_called_once_with()
        self.assertFalse(connection.close.called)