Initial import of cf-temp-email deploy CLI
This commit is contained in:
101
tests/test_app_admin.py
Normal file
101
tests/test_app_admin.py
Normal file
@@ -0,0 +1,101 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from cf_temp_email_deploy.app_admin import (
|
||||
LINUXDO_ACCESS_TOKEN_URL,
|
||||
LINUXDO_AUTHORIZATION_URL,
|
||||
LINUXDO_SCOPE,
|
||||
LINUXDO_USER_INFO_URL,
|
||||
build_linuxdo_oauth2_setting,
|
||||
merge_linuxdo_oauth2_settings,
|
||||
merge_user_settings,
|
||||
)
|
||||
|
||||
|
||||
def test_merge_user_settings_preserves_existing_fields_and_updates_enable() -> None:
|
||||
current = {
|
||||
"enable": True,
|
||||
"enableMailVerify": True,
|
||||
"verifyMailSender": "noreply@example.com",
|
||||
"enableMailAllowList": True,
|
||||
"mailAllowList": ["allowed@example.com"],
|
||||
"maxAddressCount": 9,
|
||||
"enableEmailCheckRegex": True,
|
||||
"emailCheckRegex": ".*",
|
||||
}
|
||||
|
||||
merged = merge_user_settings(current, False)
|
||||
|
||||
assert merged["enable"] is False
|
||||
assert merged["enableMailVerify"] is True
|
||||
assert merged["verifyMailSender"] == "noreply@example.com"
|
||||
assert merged["enableMailAllowList"] is True
|
||||
assert merged["mailAllowList"] == ["allowed@example.com"]
|
||||
assert merged["maxAddressCount"] == 9
|
||||
assert merged["enableEmailCheckRegex"] is True
|
||||
assert merged["emailCheckRegex"] == ".*"
|
||||
|
||||
|
||||
def test_build_linuxdo_oauth2_setting_matches_expected_fields() -> None:
|
||||
setting = build_linuxdo_oauth2_setting(
|
||||
pages_domain="email.example.com",
|
||||
client_id="linuxdo-client-id",
|
||||
client_secret="linuxdo-client-secret",
|
||||
)
|
||||
|
||||
assert setting["name"] == "LINUX DO"
|
||||
assert setting["clientID"] == "linuxdo-client-id"
|
||||
assert setting["clientSecret"] == "linuxdo-client-secret"
|
||||
assert setting["authorizationURL"] == LINUXDO_AUTHORIZATION_URL
|
||||
assert setting["accessTokenURL"] == LINUXDO_ACCESS_TOKEN_URL
|
||||
assert setting["userInfoURL"] == LINUXDO_USER_INFO_URL
|
||||
assert setting["redirectURL"] == "https://email.example.com/user/oauth2/callback"
|
||||
assert setting["scope"] == LINUXDO_SCOPE
|
||||
assert setting["enableEmailFormat"] is True
|
||||
assert setting["userEmailReplace"] == "linux_do_$1@oauth.linux.do"
|
||||
|
||||
|
||||
def test_merge_linuxdo_oauth2_settings_appends_when_missing() -> None:
|
||||
merged = merge_linuxdo_oauth2_settings(
|
||||
[{"name": "GitHub", "clientID": "github-client"}],
|
||||
pages_domain="email.example.com",
|
||||
client_id="linuxdo-client-id",
|
||||
client_secret="linuxdo-client-secret",
|
||||
)
|
||||
|
||||
assert len(merged) == 2
|
||||
assert merged[0]["name"] == "GitHub"
|
||||
assert merged[1]["name"] == "LINUX DO"
|
||||
assert merged[1]["redirectURL"] == "https://email.example.com/user/oauth2/callback"
|
||||
|
||||
|
||||
def test_merge_linuxdo_oauth2_settings_replaces_existing_and_preserves_selected_fields() -> None:
|
||||
current = [
|
||||
{
|
||||
"name": "linux do",
|
||||
"clientID": "old-client-id",
|
||||
"clientSecret": "old-client-secret",
|
||||
"authorizationURL": LINUXDO_AUTHORIZATION_URL,
|
||||
"accessTokenURL": LINUXDO_ACCESS_TOKEN_URL,
|
||||
"userInfoURL": LINUXDO_USER_INFO_URL,
|
||||
"redirectURL": "https://old.example.com/user/oauth2/callback",
|
||||
"logoutURL": "https://connect.linux.do/logout",
|
||||
"enableMailAllowList": True,
|
||||
"mailAllowList": ["allowed@example.com"],
|
||||
}
|
||||
]
|
||||
|
||||
merged = merge_linuxdo_oauth2_settings(
|
||||
current,
|
||||
pages_domain="email.example.com",
|
||||
client_id="linuxdo-client-id",
|
||||
client_secret="linuxdo-client-secret",
|
||||
)
|
||||
|
||||
assert len(merged) == 1
|
||||
assert merged[0]["name"] == "LINUX DO"
|
||||
assert merged[0]["clientID"] == "linuxdo-client-id"
|
||||
assert merged[0]["clientSecret"] == "linuxdo-client-secret"
|
||||
assert merged[0]["redirectURL"] == "https://email.example.com/user/oauth2/callback"
|
||||
assert merged[0]["logoutURL"] == "https://connect.linux.do/logout"
|
||||
assert merged[0]["enableMailAllowList"] is True
|
||||
assert merged[0]["mailAllowList"] == ["allowed@example.com"]
|
||||
Reference in New Issue
Block a user