diff --git a/changelogs/fragments/9644-kc_client-test-improvement-and-fix.yaml b/changelogs/fragments/9644-kc_client-test-improvement-and-fix.yaml new file mode 100644 index 00000000000..63cba991985 --- /dev/null +++ b/changelogs/fragments/9644-kc_client-test-improvement-and-fix.yaml @@ -0,0 +1,2 @@ +bugfixes: + - keycloak_client - fix and improve existing tests. The module showed a diff without actual changes, solved by improving the ``normalise_cr()`` function (https://github.com/ansible-collections/community.general/pull/9644). diff --git a/plugins/modules/keycloak_client.py b/plugins/modules/keycloak_client.py index da82d5460e4..16b16a0f750 100644 --- a/plugins/modules/keycloak_client.py +++ b/plugins/modules/keycloak_client.py @@ -820,9 +820,19 @@ def normalise_cr(clientrep, remove_ids=False): if remove_ids: mapper.pop('id', None) + # Convert bool to string + if 'config' in mapper: + for key, value in mapper['config'].items(): + if isinstance(value, bool): + mapper['config'][key] = str(value).lower() + # Set to a default value. mapper['consentRequired'] = mapper.get('consentRequired', False) + if 'attributes' in clientrep: + for key, value in clientrep['attributes'].items(): + if isinstance(value, bool): + clientrep['attributes'][key] = str(value).lower() return clientrep diff --git a/tests/integration/targets/keycloak_client/vars/main.yml b/tests/integration/targets/keycloak_client/vars/main.yml index 498f93e709d..93f0d4d73e7 100644 --- a/tests/integration/targets/keycloak_client/vars/main.yml +++ b/tests/integration/targets/keycloak_client/vars/main.yml @@ -34,9 +34,9 @@ protocol_mappers1: "claim.name": "email" "user.attribute": "email" "jsonType.label": "String" - "id.token.claim": "true" - "access.token.claim": "true" - "userinfo.token.claim": "true" + "id.token.claim": true + "access.token.claim": true + "userinfo.token.claim": true - name: 'email_verified' protocol: 'openid-connect' @@ -45,9 +45,9 @@ protocol_mappers1: "claim.name": "email_verified" "user.attribute": "emailVerified" "jsonType.label": "boolean" - "id.token.claim": "true" - "access.token.claim": "true" - "userinfo.token.claim": "true" + "id.token.claim": true + "access.token.claim": true + "userinfo.token.claim": true - name: 'family_name' protocol: 'openid-connect'