Add mylib-test-email-with-config script
This commit is contained in:
parent
fdf68a8ee2
commit
5a30541917
3 changed files with 73 additions and 1 deletions
|
@ -53,7 +53,6 @@ def main(argv=None): # pylint: disable=too-many-locals,too-many-statements
|
||||||
if options.email_smtp_user and not options.email_smtp_password:
|
if options.email_smtp_user and not options.email_smtp_password:
|
||||||
options.email_smtp_password = getpass.getpass('Please enter SMTP password: ')
|
options.email_smtp_password = getpass.getpass('Please enter SMTP password: ')
|
||||||
|
|
||||||
log.info('Initialize Email client')
|
|
||||||
email_client = init_email_client(
|
email_client = init_email_client(
|
||||||
options,
|
options,
|
||||||
templates=dict(
|
templates=dict(
|
||||||
|
|
72
mylib/scripts/email_test_with_config.py
Normal file
72
mylib/scripts/email_test_with_config.py
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
""" Test Email client using mylib.config.Config for configuration """
|
||||||
|
import datetime
|
||||||
|
import logging
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from mako.template import Template as MakoTemplate
|
||||||
|
|
||||||
|
from mylib.config import Config
|
||||||
|
from mylib.email import EmailClient
|
||||||
|
|
||||||
|
|
||||||
|
log = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
def main(argv=None): # pylint: disable=too-many-locals,too-many-statements
|
||||||
|
""" Script main """
|
||||||
|
if argv is None:
|
||||||
|
argv = sys.argv[1:]
|
||||||
|
|
||||||
|
config = Config(__doc__, __name__.replace('.', '_'))
|
||||||
|
|
||||||
|
email_client = EmailClient(config=config)
|
||||||
|
email_client.configure()
|
||||||
|
|
||||||
|
# Options parser
|
||||||
|
parser = config.get_arguments_parser(description=__doc__)
|
||||||
|
|
||||||
|
test_opts = parser.add_argument_group('Test email options')
|
||||||
|
|
||||||
|
test_opts.add_argument(
|
||||||
|
'-t', '--to',
|
||||||
|
action="store",
|
||||||
|
type=str,
|
||||||
|
dest="test_to",
|
||||||
|
help="Test email recipient",
|
||||||
|
)
|
||||||
|
|
||||||
|
test_opts.add_argument(
|
||||||
|
'-m', '--mako',
|
||||||
|
action="store_true",
|
||||||
|
dest="test_mako",
|
||||||
|
help="Test mako templating",
|
||||||
|
)
|
||||||
|
|
||||||
|
options = config.parse_arguments_options()
|
||||||
|
|
||||||
|
if not options.test_to:
|
||||||
|
parser.error('You must specify test email recipient using -t/--to parameter')
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
email_client.templates = dict(
|
||||||
|
test=dict(
|
||||||
|
subject="Test email",
|
||||||
|
text=(
|
||||||
|
"Just a test email sent at {sent_date}." if not options.test_mako else
|
||||||
|
MakoTemplate("Just a test email sent at ${sent_date}.")
|
||||||
|
),
|
||||||
|
html=(
|
||||||
|
"<strong>Just a test email.</strong> <small>(sent at {sent_date})</small>" if not options.test_mako else
|
||||||
|
MakoTemplate("<strong>Just a test email.</strong> <small>(sent at ${sent_date})</small>")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
logging.info('Send a test email to %s', options.test_to)
|
||||||
|
if email_client.send(options.test_to, template='test', sent_date=datetime.datetime.now()):
|
||||||
|
logging.info('Test email sent')
|
||||||
|
sys.exit(0)
|
||||||
|
logging.error('Fail to send test email')
|
||||||
|
sys.exit(1)
|
1
setup.py
1
setup.py
|
@ -61,6 +61,7 @@ setup(
|
||||||
entry_points={
|
entry_points={
|
||||||
'console_scripts': [
|
'console_scripts': [
|
||||||
'mylib-test-email = mylib.scripts.email_test:main',
|
'mylib-test-email = mylib.scripts.email_test:main',
|
||||||
|
'mylib-test-email-with-config = mylib.scripts.email_test_with_config:main',
|
||||||
'mylib-test-pbar = mylib.scripts.pbar_test:main',
|
'mylib-test-pbar = mylib.scripts.pbar_test:main',
|
||||||
'mylib-test-report = mylib.scripts.report_test:main',
|
'mylib-test-report = mylib.scripts.report_test:main',
|
||||||
'mylib-test-ldap = mylib.scripts.ldap_test:main',
|
'mylib-test-ldap = mylib.scripts.ldap_test:main',
|
||||||
|
|
Loading…
Reference in a new issue