def test_send_queued_msgs_test_mode(self, getLogger, Container): context.protonmsg_msgs = [('test.topic', { 'testheader': 1 }, 'test body')] conf = tempfile.NamedTemporaryFile() conf.write("""[broker] urls = amqps://broker1.example.com:5671 amqps://broker2.example.com:5671 cert = /etc/koji-hub/plugins/client.pem cacert = /etc/koji-hub/plugins/ca.pem topic_prefix = koji connect_timeout = 10 send_timeout = 60 test_mode = on """) conf.flush() protonmsg.CONFIG_FILE = conf.name protonmsg.CONFIG = None def clear_msgs(): del context.protonmsg_msgs[:] Container.return_value.run.side_effect = clear_msgs protonmsg.send_queued_msgs('postCommit') Container.assert_not_called() log = getLogger.return_value self.assertEqual(log.debug.call_count, len(context.protonmsg_msgs) + 1) self.assertTrue(log.debug.args[0][0].startswith('all msgs sent')) self.assertEqual(log.error.call_count, 0)
def test_send_queued_msgs_none(self, Container): self.assertFalse(hasattr(context, 'protonmsg_msgs')) protonmsg.send_queued_msgs('postCommit') self.assertEqual(Container.call_count, 0) context.protonmsg_msgs = [] protonmsg.send_queued_msgs('postCommit') self.assertEqual(Container.call_count, 0)
def test_send_queued_msgs_success(self, Container): context.protonmsg_msgs = [('test.topic', {'testheader': 1}, 'test body')] def clear_msgs(): del context.protonmsg_msgs[:] Container.return_value.run.side_effect = clear_msgs protonmsg.send_queued_msgs('postCommit') log = protonmsg.LOG self.assertEqual(log.debug.call_count, 1) self.assertTrue(log.debug.args[0][0].startswith('all msgs sent')) self.assertEqual(log.error.call_count, 0)
def test_send_queued_msgs_fail(self, Container): context.protonmsg_msgs = [('test.topic', {'testheader': 1}, 'test body')] protonmsg.send_queued_msgs('postCommit') log = protonmsg.LOG self.assertEqual(log.debug.call_count, 2) for args in log.debug.call_args_list: self.assertTrue(args[0][0].startswith('could not send')) self.assertEqual(log.error.call_count, 2) self.assertTrue(log.error.call_args[0][0].startswith('could not send'))
def test_send_queued_msgs_fail(self, getLogger, Container): context.protonmsg_msgs = [('test.topic', {'testheader': 1}, 'test body')] conf = tempfile.NamedTemporaryFile() conf.write("""[broker] urls = amqps://broker1.example.com:5671 amqps://broker2.example.com:5671 cert = /etc/koji-hub/plugins/client.pem cacert = /etc/koji-hub/plugins/ca.pem topic_prefix = koji connect_timeout = 10 send_timeout = 60 """) conf.flush() protonmsg.CONFIG_FILE = conf.name protonmsg.send_queued_msgs('postCommit') log = getLogger.return_value self.assertEqual(log.debug.call_count, 2) for args in log.debug.call_args_list: self.assertTrue(args[0][0].startswith('could not send')) self.assertEqual(log.error.call_count, 1) self.assertTrue(log.error.call_args[0][0].startswith('could not send'))
def test_send_queued_msgs_fail(self, getLogger, Container): context.protonmsg_msgs = [('test.topic', {'testheader': 1}, 'test body')] conf = tempfile.NamedTemporaryFile() conf.write(six.b("""[broker] urls = amqps://broker1.example.com:5671 amqps://broker2.example.com:5671 cert = /etc/koji-hub/plugins/client.pem cacert = /etc/koji-hub/plugins/ca.pem topic_prefix = koji connect_timeout = 10 send_timeout = 60 """)) conf.flush() protonmsg.CONFIG_FILE = conf.name protonmsg.CONFIG = None protonmsg.send_queued_msgs('postCommit') log = getLogger.return_value self.assertEqual(log.debug.call_count, 2) for args in log.debug.call_args_list: self.assertTrue(args[0][0].startswith('could not send')) self.assertEqual(log.error.call_count, 1) self.assertTrue(log.error.call_args[0][0].startswith('could not send'))
def test_send_queued_msgs_success(self, getLogger, Container): context.protonmsg_msgs = [('test.topic', {'testheader': 1}, 'test body')] conf = tempfile.NamedTemporaryFile() conf.write(six.b("""[broker] urls = amqps://broker1.example.com:5671 amqps://broker2.example.com:5671 cert = /etc/koji-hub/plugins/client.pem cacert = /etc/koji-hub/plugins/ca.pem topic_prefix = koji connect_timeout = 10 send_timeout = 60 """)) conf.flush() protonmsg.CONFIG_FILE = conf.name protonmsg.CONFIG = None def clear_msgs(): del context.protonmsg_msgs[:] Container.return_value.run.side_effect = clear_msgs protonmsg.send_queued_msgs('postCommit') log = getLogger.return_value self.assertEqual(log.debug.call_count, 1) self.assertTrue(log.debug.args[0][0].startswith('all msgs sent')) self.assertEqual(log.error.call_count, 0)