40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
import unittest
|
|
|
|
from pydantic import ValidationError
|
|
|
|
from config.settings import Settings
|
|
|
|
|
|
class SettingsTests(unittest.TestCase):
|
|
def test_blank_postgres_password_is_rejected(self):
|
|
with self.assertRaises(ValidationError):
|
|
Settings(
|
|
_env_file=None,
|
|
BOT_TOKEN="token",
|
|
POSTGRES_USER="app_user",
|
|
POSTGRES_PASSWORD="",
|
|
)
|
|
|
|
def test_webapp_secrets_are_generated_when_missing(self):
|
|
settings = Settings(
|
|
_env_file=None,
|
|
BOT_TOKEN="token",
|
|
POSTGRES_USER="app_user",
|
|
POSTGRES_PASSWORD="app_password",
|
|
)
|
|
|
|
self.assertTrue(settings.WEBAPP_SESSION_SECRET)
|
|
self.assertTrue(settings.WEBHOOK_SECRET_TOKEN)
|
|
self.assertEqual(settings.WEBAPP_SESSION_TTL_SECONDS, 86400)
|
|
|
|
def test_trial_traffic_strategy_is_available(self):
|
|
settings = Settings(
|
|
_env_file=None,
|
|
BOT_TOKEN="token",
|
|
POSTGRES_USER="app_user",
|
|
POSTGRES_PASSWORD="app_password",
|
|
TRIAL_TRAFFIC_STRATEGY="WEEK",
|
|
)
|
|
|
|
self.assertEqual(settings.TRIAL_TRAFFIC_STRATEGY, "WEEK")
|