|
@@ -0,0 +1,47 @@
|
|
|
+from django.urls import reverse
|
|
|
+
|
|
|
+from ...models import Setting
|
|
|
+
|
|
|
+admin_link = reverse("misago:admin:settings:sso:index")
|
|
|
+
|
|
|
+
|
|
|
+def test_sso_form_generates_public_key_when_enabling_sso(admin_client):
|
|
|
+ response = admin_client.post(
|
|
|
+ admin_link, {"enable_sso": "1", "sso_url": "https://test.com"}
|
|
|
+ )
|
|
|
+ setting = Setting.objects.get(setting="sso_public_key")
|
|
|
+ assert setting.value
|
|
|
+
|
|
|
+
|
|
|
+def test_sso_form_generates_private_key_when_enabling_sso(admin_client):
|
|
|
+ response = admin_client.post(
|
|
|
+ admin_link, {"enable_sso": "1", "sso_url": "https://test.com"}
|
|
|
+ )
|
|
|
+ setting = Setting.objects.get(setting="sso_private_key")
|
|
|
+ assert setting.value
|
|
|
+
|
|
|
+
|
|
|
+def test_sso_public_key_can_be_set_explicitly_when_enabling_sso(admin_client):
|
|
|
+ response = admin_client.post(
|
|
|
+ admin_link,
|
|
|
+ {"enable_sso": "1", "sso_public_key": "custom", "sso_url": "https://test.com"},
|
|
|
+ )
|
|
|
+ setting = Setting.objects.get(setting="sso_public_key")
|
|
|
+ assert setting.value == "custom"
|
|
|
+
|
|
|
+
|
|
|
+def test_sso_private_key_can_be_set_explicitly_when_enabling_sso(admin_client):
|
|
|
+ response = admin_client.post(
|
|
|
+ admin_link,
|
|
|
+ {"enable_sso": "1", "sso_private_key": "custom", "sso_url": "https://test.com"},
|
|
|
+ )
|
|
|
+ setting = Setting.objects.get(setting="sso_private_key")
|
|
|
+ assert setting.value == "custom"
|
|
|
+
|
|
|
+
|
|
|
+def test_form_requires_sso_url_when_enabling_sso(admin_client):
|
|
|
+ response = admin_client.post(
|
|
|
+ admin_link, {"enable_sso": "1", "sso_private_key": "custom", "sso_url": ""}
|
|
|
+ )
|
|
|
+ setting = Setting.objects.get(setting="enable_sso")
|
|
|
+ assert not setting.value
|