def test_ini_parse(self): ini_path = os.path.join(self.dir, "qp.ini") f = open(ini_path, "w") f.write(test_ini) f.close() # Override most everything cmdline = """qp --config %s""" % ini_path app = ConsoleApp(cmdline.split()) self.assertEqual("qp", app.script_name) self.assertFalse(app._error) self.assertEqual("hammer/dont/hurt/em", app.queue_path) self.assertEqual("testhost", app.hostname) self.assertEqual(2525, app.port) self.assertEqual("Chris", app.username) self.assertEqual("Rossi", app.password) self.assertFalse(app.force_tls) self.assertTrue(app.no_tls) # Override nothing, make sure defaults come through f = open(ini_path, "w") f.write("[app:qp]\n\nqueue_path=foo\n") f.close() cmdline = """qp --config %s %s""" % (ini_path, self.dir) app = ConsoleApp(cmdline.split()) self.assertEqual("qp", app.script_name) self.assertFalse(app._error) self.assertEqual(self.dir, app.queue_path) self.assertEqual("localhost", app.hostname) self.assertEqual(25, app.port) self.assertEqual(None, app.username) self.assertEqual(None, app.password) self.assertFalse(app.force_tls) self.assertFalse(app.no_tls)
def test_delivery(self): from email.message import Message from_addr = "*****@*****.**" to_addr = "*****@*****.**" message = Message() message['Subject'] = 'Pants' message.set_payload('Nice pants, mister!') import transaction transaction.manager.begin() self.delivery.send(from_addr, to_addr, message) self.delivery.send(from_addr, to_addr, message) transaction.manager.commit() queued_messages = [m for m in self.maildir] self.assertEqual(2, len(queued_messages)) self.assertEqual(0, len(self.mailer.sent_messages)) cmdline = "qp %s" % self.queue_dir app = ConsoleApp(cmdline.split()) app.mailer = self.mailer app.main() queued_messages = [m for m in self.maildir] self.assertEqual(0, len(queued_messages)) self.assertEqual(2, len(self.mailer.sent_messages))
def test_args_processing(self): # Simplest case that works cmdline = "qp %s" % self.dir app = ConsoleApp(cmdline.split()) self.assertEquals("qp", app.script_name) self.assertFalse(app._error) self.assertEquals(self.dir, app.queue_path) self.assertFalse(app.daemon) self.assertEquals(3, app.interval) self.assertEquals("localhost", app.hostname) self.assertEquals(25, app.port) self.assertEquals(None, app.username) self.assertEquals(None, app.password) self.assertFalse(app.force_tls) self.assertFalse(app.no_tls) # Simplest case that doesn't work cmdline = "qp" app = ConsoleApp(cmdline.split()) self.assertEquals("qp", app.script_name) self.assertTrue(app._error) self.assertEquals(None, app.queue_path) self.assertFalse(app.daemon) self.assertEquals(3, app.interval) self.assertEquals("localhost", app.hostname) self.assertEquals(25, app.port) self.assertEquals(None, app.username) self.assertEquals(None, app.password) self.assertFalse(app.force_tls) self.assertFalse(app.no_tls) # Use (almost) all of the options cmdline = """qp --daemon --interval 7 --hostname foo --port 75 --username chris --password rossi --force-tls %s""" % self.dir app = ConsoleApp(cmdline.split()) self.assertEquals("qp", app.script_name) self.assertFalse(app._error) self.assertEquals(self.dir, app.queue_path) self.assertTrue(app.daemon) self.assertEquals(7, app.interval) self.assertEquals("foo", app.hostname) self.assertEquals(75, app.port) self.assertEquals("chris", app.username) self.assertEquals("rossi", app.password) self.assertTrue(app.force_tls) self.assertFalse(app.no_tls) # Test username without password cmdline = "qp --username chris %s" % self.dir app = ConsoleApp(cmdline.split()) self.assertTrue(app._error) # Test force_tls and no_tls comdline = "qp --force-tls --no-tls %s" % self.dir self.assertTrue(app._error)
def _captureLoggedErrors(self, cmdline): from repoze.sendmail import queue logged = [] monkey = _Monkey(queue, _log_error=logged.append) # py 25 compat, can't use with statement exc_info = () try: monkey.__enter__() app = ConsoleApp(cmdline.split()) except: # pragma: no cover exc_info = sys.exc_info() monkey.__exit__(*exc_info) return app, logged
def test_args_simple_ok(self): # Simplest case that works cmdline = "qp %s" % self.dir app = ConsoleApp(cmdline.split()) self.assertEqual("qp", app.script_name) self.assertFalse(app._error) self.assertEqual(self.dir, app.queue_path) self.assertEqual("localhost", app.hostname) self.assertEqual(25, app.port) self.assertEqual(None, app.username) self.assertEqual(None, app.password) self.assertFalse(app.force_tls) self.assertFalse(app.no_tls) self.assertFalse(app.debug_smtp)
def test_args_full_monty(self): # Use (almost) all of the options cmdline = """qp --hostname foo --port 75 --username chris --password rossi --force-tls --debug-smtp %s""" % self.dir app = ConsoleApp(cmdline.split()) self.assertEquals("qp", app.script_name) self.assertFalse(app._error) self.assertEquals(self.dir, app.queue_path) self.assertEquals("foo", app.hostname) self.assertEquals(75, app.port) self.assertEquals("chris", app.username) self.assertEquals("rossi", app.password) self.assertTrue(app.force_tls) self.assertFalse(app.no_tls) self.assertTrue(app.debug_smtp)