e2e: fix typo, log when docker healthcheck fails

This commit is contained in:
Jens Langhammer 2020-08-14 18:09:49 +02:00
parent 45df127f18
commit b4fc32afac
6 changed files with 25 additions and 2 deletions

View file

@ -4,6 +4,7 @@ from time import sleep
from django.test import override_settings
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as ec
from structlog import get_logger
from docker import DockerClient, from_env
from docker.models.containers import Container
@ -18,6 +19,8 @@ from passbook.stages.prompt.models import FieldTypes, Prompt, PromptStage
from passbook.stages.user_login.models import UserLoginStage
from passbook.stages.user_write.models import UserWriteStage
LOGGER = get_logger()
class TestFlowsEnroll(SeleniumTestCase):
"""Test Enroll flow"""
@ -30,7 +33,7 @@ class TestFlowsEnroll(SeleniumTestCase):
"""Setup test IdP container"""
client: DockerClient = from_env()
container = client.containers.run(
image="mailhog/mailhog:v.1.0.1",
image="mailhog/mailhog:v1.0.1",
detach=True,
network_mode="host",
auto_remove=True,
@ -45,6 +48,7 @@ class TestFlowsEnroll(SeleniumTestCase):
status = container.attrs.get("State", {}).get("Health", {}).get("Status")
if status == "healthy":
return container
LOGGER.info("Container failed healthcheck")
sleep(1)
def tearDown(self):

View file

@ -4,6 +4,7 @@ from time import sleep
from oauth2_provider.generators import generate_client_id, generate_client_secret
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from structlog import get_logger
from docker import DockerClient, from_env
from docker.models.containers import Container
@ -15,6 +16,8 @@ from passbook.policies.expression.models import ExpressionPolicy
from passbook.policies.models import PolicyBinding
from passbook.providers.oauth.models import OAuth2Provider
LOGGER = get_logger()
class TestProviderOAuth(SeleniumTestCase):
"""test OAuth Provider flow"""
@ -61,6 +64,7 @@ class TestProviderOAuth(SeleniumTestCase):
status = container.attrs.get("State", {}).get("Health", {}).get("Status")
if status == "healthy":
return container
LOGGER.info("Container failed healthcheck")
sleep(1)
def tearDown(self):

View file

@ -7,6 +7,7 @@ from oidc_provider.models import Client, ResponseType
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as ec
from structlog import get_logger
from docker import DockerClient, from_env
from docker.models.containers import Container
@ -18,6 +19,8 @@ from passbook.policies.expression.models import ExpressionPolicy
from passbook.policies.models import PolicyBinding
from passbook.providers.oidc.models import OpenIDProvider
LOGGER = get_logger()
class TestProviderOIDC(SeleniumTestCase):
"""test OpenID Provider flow"""
@ -63,6 +66,7 @@ class TestProviderOIDC(SeleniumTestCase):
status = container.attrs.get("State", {}).get("Health", {}).get("Status")
if status == "healthy":
return container
LOGGER.info("Container failed healthcheck")
sleep(1)
def tearDown(self):

View file

@ -3,6 +3,7 @@ from time import sleep
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from structlog import get_logger
from docker import DockerClient, from_env
from docker.models.containers import Container
@ -19,6 +20,8 @@ from passbook.providers.saml.models import (
SAMLProvider,
)
LOGGER = get_logger()
class TestProviderSAML(SeleniumTestCase):
"""test SAML Provider flow"""
@ -54,6 +57,7 @@ class TestProviderSAML(SeleniumTestCase):
status = container.attrs.get("State", {}).get("Health", {}).get("Status")
if status == "healthy":
return container
LOGGER.info("Container failed healthcheck")
sleep(1)
def tearDown(self):

View file

@ -4,6 +4,7 @@ from time import sleep
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as ec
from structlog import get_logger
from docker import DockerClient, from_env
from docker.models.containers import Container
@ -13,6 +14,8 @@ from passbook.crypto.models import CertificateKeyPair
from passbook.flows.models import Flow
from passbook.sources.saml.models import SAMLBindingTypes, SAMLSource
LOGGER = get_logger()
IDP_CERT = """-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJALmVVuDWu4NYMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
@ -76,7 +79,7 @@ class TestSourceSAML(SeleniumTestCase):
"""Setup test IdP container"""
client: DockerClient = from_env()
container = client.containers.run(
image="kristophjunge/test-saml-idp",
image="kristophjunge/test-saml-idp:1.15",
detach=True,
network_mode="host",
auto_remove=True,
@ -97,6 +100,7 @@ class TestSourceSAML(SeleniumTestCase):
status = container.attrs.get("State", {}).get("Health", {}).get("Status")
if status == "healthy":
return container
LOGGER.info("Container failed healthcheck")
sleep(1)
def tearDown(self):

View file

@ -6,6 +6,7 @@ from oauth2_provider.generators import generate_client_secret
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as ec
from structlog import get_logger
from yaml import safe_dump
from docker import DockerClient, from_env
@ -17,6 +18,7 @@ from passbook.sources.oauth.models import OAuthSource
TOKEN_URL = "http://127.0.0.1:5556/dex/token"
CONFIG_PATH = "/tmp/dex.yml"
LOGGER = get_logger()
class TestSourceOAuth(SeleniumTestCase):
@ -86,6 +88,7 @@ class TestSourceOAuth(SeleniumTestCase):
status = container.attrs.get("State", {}).get("Health", {}).get("Status")
if status == "healthy":
return container
LOGGER.info("Container failed healthcheck")
sleep(1)
def create_objects(self):