You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.5 KiB
50 lines
1.5 KiB
from keycloak.keycloak_admin import KeycloakAdmin
|
|
|
|
|
|
def find_code_blocks(readme_text):
|
|
code_blocks = list()
|
|
start_index = readme_text.find("```python")
|
|
if start_index == -1:
|
|
return list()
|
|
code_block_full = readme_text[start_index + 9 :] # noqa: E203
|
|
end_index = code_block_full.find("```")
|
|
code_block = code_block_full[:end_index]
|
|
code_blocks.append(code_block)
|
|
code_blocks.extend(find_code_blocks(code_block_full[end_index + 3 :])) # noqa: E203
|
|
return code_blocks
|
|
|
|
|
|
def test_readme(admin: KeycloakAdmin):
|
|
admin.create_realm(payload={"realm": "example_realm", "enabled": True})
|
|
admin.realm_name = "example_realm"
|
|
admin.create_client(
|
|
payload={
|
|
"name": "example_client",
|
|
"enabled": True,
|
|
"protocol": "openid-connect",
|
|
"publicClient": False,
|
|
"redirectUris": ["http://localhost/*"],
|
|
"webOrigins": ["+"],
|
|
"clientId": "example_client",
|
|
"secret": "secret",
|
|
"clientAuthenticatorType": "client-secret",
|
|
}
|
|
)
|
|
admin.create_user(
|
|
payload={
|
|
"username": "user",
|
|
"email": "user@test.test",
|
|
"enabled": True,
|
|
"credentials": [{"type": "password", "value": "password"}],
|
|
}
|
|
)
|
|
|
|
with open("README.md", "r") as fp:
|
|
readme = fp.read()
|
|
code_blocks = find_code_blocks(readme)
|
|
for code in code_blocks:
|
|
print("=" * 50)
|
|
print(code)
|
|
exec(code)
|
|
print("OK")
|
|
print("=" * 50)
|