feat(security): add approved rooms/users/domains as env variables (#277)

* feat(security): add approved rooms/users/domains as env variables
* chore(lint): fix R0902
* chore(lint): fix C0114
* chore(lint): fix C0116
* chore(lint): fix C0413
This commit is contained in:
2024-08-30 19:38:56 +01:00
committed by GitHub
parent 56f1cb924e
commit b758d0dfda
8 changed files with 109 additions and 28 deletions

View File

@ -1,10 +1,11 @@
#!/usr/bin/env python3
# ruff: noqa: E402 pylint: disable=wrong-import-position
"""Provides test cases for app/utils/config.py."""
import os
vars: dict = {
"APP_VERSION": "dev",
"BOT_NAME": "TestBot",
@ -13,7 +14,10 @@ vars: dict = {
"ADMIN_EMAIL": "test@test.com",
"N8N_WEBHOOK_URL": "https://n8n.test.com/webhook/abcdefg",
"SENTRY_ENABLED": "false",
"SENTRY_DSN": "http://localhost"
"SENTRY_DSN": "http://localhost",
"APPROVED_USERS": "test@test.com",
"APPROVED_DOMAINS": "test.com",
"APPROVED_ROOMS": "test",
}
@ -25,8 +29,18 @@ from app.utils.config import config # pragma: no cover
def test_config() -> None:
assert config.bot_name == vars["BOT_NAME"]
assert config.webex_token == vars["WEBEX_API_KEY"]
assert config.admin_first_name == vars["ADMIN_FIRST_NAME"]
assert config.admin_emails == vars["ADMIN_EMAIL"].split(",")
assert config.admin_first_name == vars["ADMIN_FIRST_NAME"]
assert config.approved_domains == vars["APPROVED_DOMAINS"].split(",")
assert config.approved_rooms == vars["APPROVED_ROOMS"].split(",")
assert config.approved_users == vars["APPROVED_USERS"].split(",")
assert config.bot_name == vars["BOT_NAME"]
assert config.n8n_webhook_url == vars["N8N_WEBHOOK_URL"]
assert config.sentry_enabled == bool(vars["SENTRY_ENABLED"].upper() == "TRUE")
assert config.version == vars["APP_VERSION"]
assert config.webex_token == vars["WEBEX_API_KEY"]
if config.sentry_enabled:
assert config.sentry_dsn == vars["SENTRY_DSN"]
else:
assert config.sentry_dsn == ""

23
tests/test_helpers.py Normal file
View File

@ -0,0 +1,23 @@
#!/usr/bin/env python3
"""Provides test cases for app/utils/helpers.py."""
from app.utils.helpers import validate_email_syntax # pragma: no cover
def test_validate_email_syntax_true() -> None:
"""Test validate_email_syntax() with a real email address."""
email: str = "test@test.com"
assert validate_email_syntax(email)
def test_validate_email_syntax_false1() -> None:
"""Test validate_email_syntax() with an invalid email address."""
email: str = "test@test"
assert not validate_email_syntax(email)
def test_validate_email_syntax_false2() -> None:
"""Test validate_email_syntax() with an invalid email address."""
email: str = "test"
assert not validate_email_syntax(email)