Clean up notifiy component

This commit is contained in:
Paulus Schoutsen 2015-11-08 22:15:34 -08:00
parent 3947691347
commit 3b3f5fe6fe
13 changed files with 143 additions and 253 deletions

View file

@ -20,35 +20,31 @@ _LOGGER = logging.getLogger(__name__)
def get_service(hass, config):
""" Get the mail notification service. """
if not validate_config(config,
{DOMAIN: ['server',
'port',
'sender',
'username',
'password',
'recipient']},
_LOGGER):
if not validate_config(
{DOMAIN: config},
{DOMAIN: ['server', 'port', 'sender', 'username', 'password',
'recipient']}, _LOGGER):
return None
smtp_server = config[DOMAIN]['server']
port = int(config[DOMAIN]['port'])
username = config[DOMAIN]['username']
password = config[DOMAIN]['password']
smtp_server = config['server']
port = int(config['port'])
username = config['username']
password = config['password']
starttls = int(config['starttls'])
server = None
try:
server = smtplib.SMTP(smtp_server, port)
server.ehlo()
if int(config[DOMAIN]['starttls']) == 1:
if starttls == 1:
server.starttls()
server.ehlo()
try:
server.login(username, password)
except (smtplib.SMTPException, smtplib.SMTPSenderRefused) as error:
_LOGGER.exception(error,
"Please check your settings.")
except (smtplib.SMTPException, smtplib.SMTPSenderRefused):
_LOGGER.exception("Please check your settings.")
return None
@ -66,18 +62,13 @@ def get_service(hass, config):
return None
if server:
server.quit()
finally:
if server:
server.quit()
return MailNotificationService(
config[DOMAIN]['server'],
config[DOMAIN]['port'],
config[DOMAIN]['sender'],
config[DOMAIN]['starttls'],
config[DOMAIN]['username'],
config[DOMAIN]['password'],
config[DOMAIN]['recipient']
)
smtp_server, port, config['sender'], starttls, username, password,
config['recipient'])
# pylint: disable=too-few-public-methods, too-many-instance-attributes
@ -90,7 +81,7 @@ class MailNotificationService(BaseNotificationService):
self._server = server
self._port = port
self._sender = sender
self.starttls = int(starttls)
self.starttls = starttls
self.username = username
self.password = password
self.recipient = recipient