github.com/verrazzano/verrazzano@v1.7.0/platform-operator/thirdparty/charts/keycloak/templates/test/configmap-test.yaml (about)

     1  {{- if .Values.test.enabled }}
     2  apiVersion: v1
     3  kind: ConfigMap
     4  metadata:
     5    name: {{ include "keycloak.fullname" . }}-test
     6    namespace: {{ .Release.Namespace }}
     7    labels:
     8      {{- include "keycloak.labels" . | nindent 4 }}
     9    annotations:
    10      helm.sh/hook: test
    11      helm.sh/hook-delete-policy: hook-succeeded
    12  data:
    13    test.py: |
    14      import os
    15      from selenium import webdriver
    16      from selenium.webdriver.common.by import By
    17      from selenium.webdriver.support.ui import WebDriverWait
    18      from selenium.webdriver.chrome.options import Options
    19      from selenium.webdriver.support import expected_conditions
    20  
    21      print('Creating chrome driver in headless mode')
    22      chrome_options = Options()
    23      chrome_options.add_argument("--headless")
    24      chrome_options.add_argument('--no-sandbox')
    25      chrome_options.add_argument('--disable-dev-shm-usage')
    26      driver = webdriver.Chrome(options=chrome_options)
    27  
    28      base_url = 'http://{{ include "keycloak.fullname" . }}-http{{ if ne 80 (int .Values.service.httpPort) }}:{{ .Values.service.httpPort }}{{ end }}'
    29  
    30      print('Opening Keycloak...')
    31      driver.get('{0}{{ tpl .Values.http.relativePath . | trimSuffix "/" }}/admin/'.format(base_url))
    32  
    33      username = os.environ['KEYCLOAK_USER']
    34      password = os.environ['KEYCLOAK_PASSWORD']
    35  
    36      username_input = WebDriverWait(driver, 30).until(expected_conditions.presence_of_element_located((By.ID, "username")))
    37      password_input = WebDriverWait(driver, 30).until(expected_conditions.presence_of_element_located((By.ID, "password")))
    38      login_button = WebDriverWait(driver, 30).until(expected_conditions.presence_of_element_located((By.ID, "kc-login")))
    39  
    40      print('Entering username...')
    41      username_input.send_keys(username)
    42  
    43      print('Entering password...')
    44      password_input.send_keys(password)
    45  
    46      print('Clicking login button...')
    47      login_button.click()
    48  
    49      WebDriverWait(driver, 30).until(lambda driver: '{{ tpl .Values.http.relativePath . | trimSuffix "/" }}/admin/master/console/' in driver.current_url)
    50  
    51      print('Admin console visible. Login successful.')
    52  
    53      driver.quit()
    54  
    55    {{- end }}