Skip to content

Commit

Permalink
Fix tests
Browse files Browse the repository at this point in the history
- Added FF checks when displaying the sms and email limits to non-admin users
  • Loading branch information
whabanks committed Oct 23, 2024
1 parent f1acbc5 commit 470fcfe
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 25 deletions.
62 changes: 41 additions & 21 deletions app/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ class Config(object):
ALLOW_DEBUG_ROUTE = env.bool("ALLOW_DEBUG_ROUTE", False)

# List of allowed service IDs that are allowed to send HTML through their templates.
ALLOW_HTML_SERVICE_IDS: List[str] = [id.strip() for id in os.getenv("ALLOW_HTML_SERVICE_IDS", "").split(",")]
ALLOW_HTML_SERVICE_IDS: List[str] = [
id.strip() for id in os.getenv("ALLOW_HTML_SERVICE_IDS", "").split(",")]
ADMIN_BASE_URL = (
"https://" + os.environ.get("HEROKU_APP_NAME", "") + ".herokuapp.com"
if os.environ.get("HEROKU_APP_NAME", "") != ""
Expand All @@ -47,12 +48,15 @@ class Config(object):
BULK_SEND_AWS_BUCKET = os.getenv("BULK_SEND_AWS_BUCKET")

CHECK_PROXY_HEADER = False
CONTACT_EMAIL = os.environ.get("CONTACT_EMAIL", "[email protected]")
CRM_GITHUB_PERSONAL_ACCESS_TOKEN = os.getenv("CRM_GITHUB_PERSONAL_ACCESS_TOKEN")
CONTACT_EMAIL = os.environ.get(
"CONTACT_EMAIL", "[email protected]")
CRM_GITHUB_PERSONAL_ACCESS_TOKEN = os.getenv(
"CRM_GITHUB_PERSONAL_ACCESS_TOKEN")
CRM_ORG_LIST_URL = os.getenv("CRM_ORG_LIST_URL")
CSV_MAX_ROWS = env.int("CSV_MAX_ROWS", 50_000)
CSV_MAX_ROWS_BULK_SEND = env.int("CSV_MAX_ROWS_BULK_SEND", 100_000)
CSV_UPLOAD_BUCKET_NAME = os.getenv("CSV_UPLOAD_BUCKET_NAME", "notification-alpha-canada-ca-csv-upload")
CSV_UPLOAD_BUCKET_NAME = os.getenv(
"CSV_UPLOAD_BUCKET_NAME", "notification-alpha-canada-ca-csv-upload")
DANGEROUS_SALT = os.environ.get("DANGEROUS_SALT")
DEBUG = False
DEBUG_KEY = os.environ.get("DEBUG_KEY", "")
Expand All @@ -67,15 +71,18 @@ class Config(object):
"other": 25_000,
}
DEFAULT_LIVE_SERVICE_LIMIT = env.int("DEFAULT_LIVE_SERVICE_LIMIT", 10_000)
DEFAULT_LIVE_SMS_DAILY_LIMIT = env.int("DEFAULT_LIVE_SMS_DAILY_LIMIT", 1000)
DEFAULT_LIVE_SMS_DAILY_LIMIT = env.int(
"DEFAULT_LIVE_SMS_DAILY_LIMIT", 1000)
DEFAULT_SERVICE_LIMIT = env.int("DEFAULT_SERVICE_LIMIT", 50)
DEFAULT_SMS_DAILY_LIMIT = env.int("DEFAULT_SMS_DAILY_LIMIT", 50)
DOCUMENTATION_DOMAIN = os.getenv("DOCUMENTATION_DOMAIN", "documentation.notification.canada.ca")
DOCUMENTATION_DOMAIN = os.getenv(
"DOCUMENTATION_DOMAIN", "documentation.notification.canada.ca")
EMAIL_2FA_EXPIRY_SECONDS = 1_800 # 30 Minutes
EMAIL_EXPIRY_SECONDS = 3600 # 1 hour

# for waffles: pull out the routes into a flat list of the form ['/home', '/accueil', '/why-gc-notify', ...]
EXTRA_ROUTES = [item for sublist in map(lambda x: x.values(), GC_ARTICLES_ROUTES.values()) for item in sublist]
EXTRA_ROUTES = [item for sublist in map(
lambda x: x.values(), GC_ARTICLES_ROUTES.values()) for item in sublist]

# FEATURE FLAGS
FF_SALESFORCE_CONTACT = env.bool("FF_SALESFORCE_CONTACT", True)
Expand All @@ -84,19 +91,24 @@ class Config(object):

FREE_YEARLY_EMAIL_LIMIT = env.int("FREE_YEARLY_EMAIL_LIMIT", 10_000_000)
FREE_YEARLY_SMS_LIMIT = env.int("FREE_YEARLY_SMS_LIMIT", 25_000)
GC_ARTICLES_API = os.environ.get("GC_ARTICLES_API", "articles.alpha.canada.ca/notification-gc-notify")
GC_ARTICLES_API_AUTH_PASSWORD = os.environ.get("GC_ARTICLES_API_AUTH_PASSWORD")
GC_ARTICLES_API_AUTH_USERNAME = os.environ.get("GC_ARTICLES_API_AUTH_USERNAME")
GC_ARTICLES_API = os.environ.get(
"GC_ARTICLES_API", "articles.alpha.canada.ca/notification-gc-notify")
GC_ARTICLES_API_AUTH_PASSWORD = os.environ.get(
"GC_ARTICLES_API_AUTH_PASSWORD")
GC_ARTICLES_API_AUTH_USERNAME = os.environ.get(
"GC_ARTICLES_API_AUTH_USERNAME")
GOOGLE_ANALYTICS_ID = os.getenv("GOOGLE_ANALYTICS_ID", "UA-102484926-14")
GOOGLE_TAG_MANAGER_ID = os.getenv("GOOGLE_TAG_MANAGER_ID", "GTM-KRKRZQV")
HC_EN_SERVICE_ID = os.getenv("HC_EN_SERVICE_ID")
HC_FR_SERVICE_ID = os.getenv("HC_FR_SERVICE_ID")
HIPB_ENABLED = True
HTTP_PROTOCOL = "http"
INVITATION_EXPIRY_SECONDS = 3_600 * 24 * 2 # 2 days - also set on api
IP_GEOLOCATE_SERVICE = os.environ.get("IP_GEOLOCATE_SERVICE", "").rstrip("/")
IP_GEOLOCATE_SERVICE = os.environ.get(
"IP_GEOLOCATE_SERVICE", "").rstrip("/")
LANGUAGES = ["en", "fr"]
LOGO_UPLOAD_BUCKET_NAME = os.getenv("ASSET_UPLOAD_BUCKET_NAME", "notification-alpha-canada-ca-asset-upload")
LOGO_UPLOAD_BUCKET_NAME = os.getenv(
"ASSET_UPLOAD_BUCKET_NAME", "notification-alpha-canada-ca-asset-upload")
MAX_FAILED_LOGIN_COUNT = 10
MOU_BUCKET_NAME = os.getenv("MOU_BUCKET_NAME", "")

Expand All @@ -119,8 +131,10 @@ class Config(object):
SCANFILES_URL = os.environ.get("SCANFILES_URL", "")

SECRET_KEY = env.list("SECRET_KEY", [])
SECURITY_EMAIL = os.environ.get("SECURITY_EMAIL", "[email protected]")
SENDING_DOMAIN = os.environ.get("SENDING_DOMAIN", "notification.alpha.canada.ca")
SECURITY_EMAIL = os.environ.get(
"SECURITY_EMAIL", "[email protected]")
SENDING_DOMAIN = os.environ.get(
"SENDING_DOMAIN", "notification.alpha.canada.ca")
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_NAME = "notify_admin_session"
SESSION_COOKIE_SAMESITE = "Lax"
Expand All @@ -134,8 +148,10 @@ class Config(object):
STATSD_PORT = 8_125
STATSD_PREFIX = os.getenv("STATSD_PREFIX")

TEMPLATE_PREVIEW_API_HOST = os.environ.get("TEMPLATE_PREVIEW_API_HOST", "http://localhost:6013")
TEMPLATE_PREVIEW_API_KEY = os.environ.get("TEMPLATE_PREVIEW_API_KEY", "my-secret-key")
TEMPLATE_PREVIEW_API_HOST = os.environ.get(
"TEMPLATE_PREVIEW_API_HOST", "http://localhost:6013")
TEMPLATE_PREVIEW_API_KEY = os.environ.get(
"TEMPLATE_PREVIEW_API_KEY", "my-secret-key")
WAF_SECRET = os.environ.get("WAF_SECRET", "waf-secret")
WTF_CSRF_ENABLED = True
WTF_CSRF_TIME_LIMIT = None
Expand All @@ -146,7 +162,8 @@ class Config(object):

NOTIFY_USER_ID = "6af522d0-2915-4e52-83a3-3690455a5fe6"
NOTIFY_SERVICE_ID = "d6aa2c68-a2d9-4437-ab19-3ae8eb202553"
NO_BRANDING_ID = os.environ.get("NO_BRANDING_ID", "0af93cf1-2c49-485f-878f-f3e662e651ef")
NO_BRANDING_ID = os.environ.get(
"NO_BRANDING_ID", "0af93cf1-2c49-485f-878f-f3e662e651ef")

@classmethod
def get_sensitive_config(cls) -> list[str]:
Expand Down Expand Up @@ -174,7 +191,8 @@ def get_safe_config(cls) -> dict[str, Any]:


class Development(Config):
ADMIN_CLIENT_SECRET = os.environ.get("ADMIN_CLIENT_SECRET", "dev-notify-secret-key")
ADMIN_CLIENT_SECRET = os.environ.get(
"ADMIN_CLIENT_SECRET", "dev-notify-secret-key")
ANTIVIRUS_API_HOST = "http://localhost:6016"
ANTIVIRUS_API_KEY = "test-key"
API_HOST_NAME = os.environ.get("API_HOST_NAME", "http://localhost:6011")
Expand All @@ -188,11 +206,12 @@ class Development(Config):
SESSION_PROTECTION = None
SYSTEM_STATUS_URL = "https://localhost:3000"
NO_BRANDING_ID = "0af93cf1-2c49-485f-878f-f3e662e651ef"
FF_ANNUAL_LIMIT = True
FF_ANNUAL_LIMIT = env.bool("FF_ANNUAL_LIMIT", True)


class Test(Development):
ADMIN_CLIENT_SECRET = os.environ.get("ADMIN_CLIENT_SECRET", "dev-notify-secret-key")
ADMIN_CLIENT_SECRET = os.environ.get(
"ADMIN_CLIENT_SECRET", "dev-notify-secret-key")
ANTIVIRUS_API_HOST = "https://test-antivirus"
ANTIVIRUS_API_KEY = "test-antivirus-secret"
API_HOST_NAME = os.environ.get("API_HOST_NAME", "http://localhost:6011")
Expand All @@ -218,7 +237,8 @@ class Test(Development):


class ProductionFF(Config):
ADMIN_CLIENT_SECRET = os.environ.get("ADMIN_CLIENT_SECRET", "dev-notify-secret-key")
ADMIN_CLIENT_SECRET = os.environ.get(
"ADMIN_CLIENT_SECRET", "dev-notify-secret-key")
ANTIVIRUS_API_HOST = "https://test-antivirus"
ANTIVIRUS_API_KEY = "test-antivirus-secret"
API_HOST_NAME = os.environ.get("API_HOST_NAME", "http://localhost:6011")
Expand Down
18 changes: 14 additions & 4 deletions app/templates/views/service-settings.html
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,12 @@ <h2 class="heading-small p-0 m-0">{{ _('Your service is in trial mode') }}</h2>
{% call settings_row(if_has_permission='email') %}
{% set txt = _('Annual maximum</br>(April 1 to March 31)') %}
{{ text_field(txt) }}
{% set annual_limit = _('{} million emails').format((current_service.email_annual_limit//1000000) | format_number) %}
{# TODO: FF_ANNUAL_LIMIT removal #}
{% if config["FF_ANNUAL_LIMIT"] %}
{% set annual_limit = _('{} million emails').format((current_service.email_annual_limit//1000000) | format_number) %}
{% else %}
{% set annual_limit = _('{} million emails').format((limits.free_yearly_email//1000000) | format_number) %}
{% endif%}
{{ text_field(annual_limit) }}
{{ text_field('')}}
{% endcall %}
Expand Down Expand Up @@ -266,8 +271,13 @@ <h2 class="heading-small p-0 m-0">{{ _('Your service is in trial mode') }}</h2>
{% call settings_row(if_has_permission='sms') %}
{% set txt = _('Annual maximum</br>(April 1 to March 31)') %}
{{ text_field(txt) }}
{% set txt_msg_limit = _('{} text messages').format(current_service.sms_annual_limit | format_number) %}
{{ text_field(txt_msg_limit) }}
{# TODO: FF_ANNUAL_LIMIT removal #}
{% if config["FF_ANNUAL_LIMIT"] %}
{% set annual_sms_limit = _('{} text messages').format((current_service.sms_annual_limit) | format_number) %}
{% else %}
{% set annual_sms_limit = _('{} text messages').format((limits.free_yearly_sms) | format_number) %}
{% endif%}
{{ text_field(annual_sms_limit) }}
{{ text_field('')}}
{% endcall %}

Expand Down Expand Up @@ -374,7 +384,7 @@ <h2 class="heading-medium">{{ _('Platform admin settings') }}</h2>
{% endcall %}

{# TODO: FF_ANNUAL_LIMIT removal #}
{% if config["FF_ANNUAL_LIMIT"] %}
{% if config["FF_ANNUAL_LIMIT"] %}
{% call row() %}
{% set txt = _('Annual email limit') %}
{{ text_field(txt)}}
Expand Down

0 comments on commit 470fcfe

Please sign in to comment.