e2e: update for new saml-test-sp, pull image before run
This commit is contained in:
parent
760352202e
commit
e0d8189442
|
@ -51,6 +51,7 @@ class TestProviderOAuth2OIDC(SeleniumTestCase):
|
||||||
"""Setup client saml-sp container which we test SAML against"""
|
"""Setup client saml-sp container which we test SAML against"""
|
||||||
sleep(1)
|
sleep(1)
|
||||||
client: DockerClient = from_env()
|
client: DockerClient = from_env()
|
||||||
|
client.images.pull("beryju/oidc-test-client")
|
||||||
container = client.containers.run(
|
container = client.containers.run(
|
||||||
image="beryju/oidc-test-client",
|
image="beryju/oidc-test-client",
|
||||||
detach=True,
|
detach=True,
|
||||||
|
|
|
@ -39,6 +39,7 @@ class TestProviderProxy(SeleniumTestCase):
|
||||||
def start_proxy(self, outpost: Outpost) -> Container:
|
def start_proxy(self, outpost: Outpost) -> Container:
|
||||||
"""Start proxy container based on outpost created"""
|
"""Start proxy container based on outpost created"""
|
||||||
client: DockerClient = from_env()
|
client: DockerClient = from_env()
|
||||||
|
client.images.pull("beryju/oidc-test-client")
|
||||||
container = client.containers.run(
|
container = client.containers.run(
|
||||||
image="beryju/passbook-proxy:latest",
|
image="beryju/passbook-proxy:latest",
|
||||||
detach=True,
|
detach=True,
|
||||||
|
@ -111,6 +112,7 @@ class TestProviderProxyConnect(ChannelsLiveServerTestCase):
|
||||||
def start_proxy(self, outpost: Outpost) -> Container:
|
def start_proxy(self, outpost: Outpost) -> Container:
|
||||||
"""Start proxy container based on outpost created"""
|
"""Start proxy container based on outpost created"""
|
||||||
client: DockerClient = from_env()
|
client: DockerClient = from_env()
|
||||||
|
client.images.pull("beryju/oidc-test-client")
|
||||||
container = client.containers.run(
|
container = client.containers.run(
|
||||||
image="beryju/passbook-proxy:latest",
|
image="beryju/passbook-proxy:latest",
|
||||||
detach=True,
|
detach=True,
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
"""test SAML Provider flow"""
|
"""test SAML Provider flow"""
|
||||||
|
from json import loads
|
||||||
from sys import platform
|
from sys import platform
|
||||||
from time import sleep
|
from time import sleep
|
||||||
from unittest.case import skipUnless
|
from unittest.case import skipUnless
|
||||||
|
@ -35,6 +36,7 @@ class TestProviderSAML(SeleniumTestCase):
|
||||||
def setup_client(self, provider: SAMLProvider) -> Container:
|
def setup_client(self, provider: SAMLProvider) -> Container:
|
||||||
"""Setup client saml-sp container which we test SAML against"""
|
"""Setup client saml-sp container which we test SAML against"""
|
||||||
client: DockerClient = from_env()
|
client: DockerClient = from_env()
|
||||||
|
client.images.pull("beryju/oidc-test-client")
|
||||||
container = client.containers.run(
|
container = client.containers.run(
|
||||||
image="beryju/saml-test-sp",
|
image="beryju/saml-test-sp",
|
||||||
detach=True,
|
detach=True,
|
||||||
|
@ -92,10 +94,14 @@ class TestProviderSAML(SeleniumTestCase):
|
||||||
self.driver.find_element(By.ID, "id_password").send_keys(USER().username)
|
self.driver.find_element(By.ID, "id_password").send_keys(USER().username)
|
||||||
self.driver.find_element(By.ID, "id_password").send_keys(Keys.ENTER)
|
self.driver.find_element(By.ID, "id_password").send_keys(Keys.ENTER)
|
||||||
self.wait_for_url("http://localhost:9009/")
|
self.wait_for_url("http://localhost:9009/")
|
||||||
self.assertEqual(
|
|
||||||
self.driver.find_element(By.CSS_SELECTOR, "pre").text,
|
body = loads(self.driver.find_element(By.CSS_SELECTOR, "pre").text)
|
||||||
f"Hello, {USER().name}!",
|
|
||||||
)
|
self.assertEqual(body["attr"]["cn"], [USER().name])
|
||||||
|
self.assertEqual(body["attr"]["displayName"], [USER().username])
|
||||||
|
self.assertEqual(body["attr"]["eduPersonPrincipalName"], [USER().email])
|
||||||
|
self.assertEqual(body["attr"]["mail"], [USER().email])
|
||||||
|
self.assertEqual(body["attr"]["uid"], [str(USER().pk)])
|
||||||
|
|
||||||
def test_sp_initiated_explicit(self):
|
def test_sp_initiated_explicit(self):
|
||||||
"""test SAML Provider flow SP-initiated flow (explicit consent)"""
|
"""test SAML Provider flow SP-initiated flow (explicit consent)"""
|
||||||
|
@ -130,10 +136,14 @@ class TestProviderSAML(SeleniumTestCase):
|
||||||
sleep(1)
|
sleep(1)
|
||||||
self.driver.find_element(By.CSS_SELECTOR, "[type=submit]").click()
|
self.driver.find_element(By.CSS_SELECTOR, "[type=submit]").click()
|
||||||
self.wait_for_url("http://localhost:9009/")
|
self.wait_for_url("http://localhost:9009/")
|
||||||
self.assertEqual(
|
|
||||||
self.driver.find_element(By.CSS_SELECTOR, "pre").text,
|
body = loads(self.driver.find_element(By.CSS_SELECTOR, "pre").text)
|
||||||
f"Hello, {USER().name}!",
|
|
||||||
)
|
self.assertEqual(body["attr"]["cn"], [USER().name])
|
||||||
|
self.assertEqual(body["attr"]["displayName"], [USER().username])
|
||||||
|
self.assertEqual(body["attr"]["eduPersonPrincipalName"], [USER().email])
|
||||||
|
self.assertEqual(body["attr"]["mail"], [USER().email])
|
||||||
|
self.assertEqual(body["attr"]["uid"], [str(USER().pk)])
|
||||||
|
|
||||||
def test_idp_initiated_implicit(self):
|
def test_idp_initiated_implicit(self):
|
||||||
"""test SAML Provider flow IdP-initiated flow (implicit consent)"""
|
"""test SAML Provider flow IdP-initiated flow (implicit consent)"""
|
||||||
|
@ -169,10 +179,14 @@ class TestProviderSAML(SeleniumTestCase):
|
||||||
self.driver.find_element(By.ID, "id_password").send_keys(Keys.ENTER)
|
self.driver.find_element(By.ID, "id_password").send_keys(Keys.ENTER)
|
||||||
sleep(1)
|
sleep(1)
|
||||||
self.wait_for_url("http://localhost:9009/")
|
self.wait_for_url("http://localhost:9009/")
|
||||||
self.assertEqual(
|
|
||||||
self.driver.find_element(By.CSS_SELECTOR, "pre").text,
|
body = loads(self.driver.find_element(By.CSS_SELECTOR, "pre").text)
|
||||||
f"Hello, {USER().name}!",
|
|
||||||
)
|
self.assertEqual(body["attr"]["cn"], [USER().name])
|
||||||
|
self.assertEqual(body["attr"]["displayName"], [USER().username])
|
||||||
|
self.assertEqual(body["attr"]["eduPersonPrincipalName"], [USER().email])
|
||||||
|
self.assertEqual(body["attr"]["mail"], [USER().email])
|
||||||
|
self.assertEqual(body["attr"]["uid"], [str(USER().pk)])
|
||||||
|
|
||||||
def test_sp_initiated_denied(self):
|
def test_sp_initiated_denied(self):
|
||||||
"""test SAML Provider flow SP-initiated flow (Policy denies access)"""
|
"""test SAML Provider flow SP-initiated flow (Policy denies access)"""
|
||||||
|
|
|
@ -47,6 +47,7 @@ class SeleniumTestCase(StaticLiveServerTestCase):
|
||||||
|
|
||||||
def _start_container(self, specs: Dict[str, Any]) -> Container:
|
def _start_container(self, specs: Dict[str, Any]) -> Container:
|
||||||
client: DockerClient = from_env()
|
client: DockerClient = from_env()
|
||||||
|
client.images.pull(specs['image'])
|
||||||
container = client.containers.run(**specs)
|
container = client.containers.run(**specs)
|
||||||
if "healthcheck" not in specs:
|
if "healthcheck" not in specs:
|
||||||
return container
|
return container
|
||||||
|
|
Reference in New Issue