notifiers icon indicating copy to clipboard operation
notifiers copied to clipboard

Boolean values taken from environment variables raise BadArguments

Open amitlt opened this issue 4 years ago • 1 comments

Describe the bug Some providers require boolean values to be supplied, like the tls option in the email provider. If provided through environment variables, these values raise BadArguments exception. Neither True, TRUE, true, yes or 1 work.

relevant error:

data = self._process_data(**kwargs)
  File "/Users/amitl/ops-lambdas/venv/lib/python3.7/site-packages/notifiers/core.py", line 235, in _process_data

    self._validate_data(data)
  File "/Users/amitl/ops-lambdas/venv/lib/python3.7/site-packages/notifiers/core.py", line 208, in _validate_data

    raise BadArguments(validation_error=msg, provider=self.name, data=data)
notifiers.exceptions.BadArguments: Error with sent data: 'true' is not of type 'boolean'

To Reproduce Provide a boolean value through environment variables

NOTIFIERS_EMAIL_FROM="[email protected]"
NOTIFIERS_EMAIL_HOST="email-smtp.us-east-1.amazonaws.com"
NOTIFIERS_EMAIL_TLS=true
NOTIFIERS_EMAIL_USERNAME="USERNAME"
NOTIFIERS_EMAIL_PASSWORD="PASSWORD"

Expected behavior For boolean values to be converted to booleans so they can pass schema check.

Additional context Python version: 3.8 OS: macos

amitlt avatar Jul 05 '20 09:07 amitlt

Nice catch. I'm working on completely rewriting the schema validation logic in #359 , I"ll make sure to add this to that. Thanks!

liiight avatar Jul 07 '20 22:07 liiight