diff --git a/plugins/doc_fragments/ipamodule_base_docs.py b/plugins/doc_fragments/ipamodule_base_docs.py
index 97aaffddb51e4d7cf54f95f5616433d1501ea19a..59d95ca49ff5498625e2c63913d7ad329581eadb 100644
--- a/plugins/doc_fragments/ipamodule_base_docs.py
+++ b/plugins/doc_fragments/ipamodule_base_docs.py
@@ -56,5 +56,5 @@ options:
       Continuous mode. Don't stop on errors. Valid only if `state` is `absent`.
     aliases: ["continue"]
     type: bool
-    default: True
+    default: true
 """
diff --git a/plugins/inventory/freeipa.py b/plugins/inventory/freeipa.py
index f17421be5516f62c338b0eba9641f00c41e8bf2e..8cb2ec5b4df40a08763bca2afdb0ec061590d322 100644
--- a/plugins/inventory/freeipa.py
+++ b/plugins/inventory/freeipa.py
@@ -32,8 +32,7 @@ ANSIBLE_METADATA = {
 DOCUMENTATION = """
 ---
 name: freeipa
-plugin_type: inventory
-version_added: "1.13"
+version_added: "1.13.0"
 short_description: Compiles a dynamic inventory from IPA domain
 description: |
   Compiles a dynamic inventory from IPA domain, filters servers by role(s).
diff --git a/plugins/modules/ipacert.py b/plugins/modules/ipacert.py
index c88d4d1e476822ef6ad1b11f5013fe352cf55226..6c9b760d4afddd4e7ccf661eb157e612aacfec45 100644
--- a/plugins/modules/ipacert.py
+++ b/plugins/modules/ipacert.py
@@ -34,7 +34,7 @@ ANSIBLE_METADATA = {
 DOCUMENTATION = """
 ---
 module: ipacert
-short description: Manage FreeIPA certificates
+short_description: Manage FreeIPA certificates
 description: Manage FreeIPA certificates
 extends_documentation_fragment:
   - ipamodule_base_docs
@@ -67,6 +67,10 @@ options:
     description: Name of the issuing certificate authority.
     type: str
     required: false
+  chain:
+    description: Include certificate chain in output.
+    type: bool
+    required: false
   serial_number:
     description: |
       Certificate serial number. Cannot be used with `state: requested`.
@@ -102,7 +106,6 @@ options:
     required: true
     type: str
 author:
-authors:
   - Sam Morris (@yrro)
   - Rafael Guterres Jeffman (@rjeffman)
 """
diff --git a/plugins/modules/ipaidoverrideuser.py b/plugins/modules/ipaidoverrideuser.py
index 49412ebd908d660a17eb6a6b9fd20d530acf3e53..9bae4c93128d2ca86c514ac9ebe8a2ba5c24f06a 100644
--- a/plugins/modules/ipaidoverrideuser.py
+++ b/plugins/modules/ipaidoverrideuser.py
@@ -87,7 +87,7 @@ options:
   sshpubkey:
     description: List of SSH public keys
     type: list
-    element: str
+    elements: str
     required: False
     aliases: ["ipasshpubkey"]
   certificate:
@@ -113,7 +113,7 @@ options:
     description: |
       Suppress processing of membership attributes.
       Valid only if `state` is `absent`.
-    type: str
+    type: bool
     required: False
     aliases: ["no_members"]
   action:
diff --git a/plugins/modules/ipaidp.py b/plugins/modules/ipaidp.py
index 8c0aea6b61d6708e96acf2b29e6cc9180c607da0..b30d60aabf4479a486f581c36ea847bdb6bae2af 100644
--- a/plugins/modules/ipaidp.py
+++ b/plugins/modules/ipaidp.py
@@ -82,7 +82,6 @@ options:
     description: OAuth 2.0 client secret
     required: false
     type: str
-    no_log: true
     aliases: ["ipaidpclientsecret"]
   scope:
     description: OAuth 2.0 scope. Multiple scopes separated by space
@@ -362,11 +361,11 @@ def main():
             dev_auth_uri=dict(required=False, type="str", default=None,
                               aliases=["ipaidpdevauthendpoint"]),
             token_uri=dict(required=False, type="str", default=None,
-                           aliases=["ipaidptokenendpoint"]),
+                           aliases=["ipaidptokenendpoint"], no_log=False),
             userinfo_uri=dict(required=False, type="str", default=None,
                               aliases=["ipaidpuserinfoendpoint"]),
             keys_uri=dict(required=False, type="str", default=None,
-                          aliases=["ipaidpkeysendpoint"]),
+                          aliases=["ipaidpkeysendpoint"], no_log=False),
             issuer_url=dict(required=False, type="str", default=None,
                             aliases=["ipaidpissuerurl"]),
             client_id=dict(required=False, type="str", default=None,
diff --git a/plugins/modules/ipaservice.py b/plugins/modules/ipaservice.py
index a9bcb2d9a5ff7fb2e4849006355f9ae1b097cafc..1e270b5efab8733cb68f3a3d88c6bd74d5146c2c 100644
--- a/plugins/modules/ipaservice.py
+++ b/plugins/modules/ipaservice.py
@@ -44,7 +44,7 @@ options:
     description: The service to manage
     type: list
     elements: str
-    required: true
+    required: false
     aliases: ["service"]
   services:
     description: The list of service dicts.
@@ -167,6 +167,13 @@ options:
         type: list
         elements: str
         aliases: ["ipaallowedtoperform_read_keys_hostgroup"]
+      delete_continue:
+        description:
+          Continuous mode. Don't stop on errors.
+          Valid only if `state` is `absent`.
+        required: false
+        type: bool
+        aliases: ["continue"]
   certificate:
     description: Base-64 encoded service certificate.
     required: false
diff --git a/roles/ipaclient/library/ipaclient_setup_nss.py b/roles/ipaclient/library/ipaclient_setup_nss.py
index 0bee3b5f890af4b3fcce7c3acc4204ac84393d13..052ac4506edd5cff2d4e9129814bb89328b6e251 100644
--- a/roles/ipaclient/library/ipaclient_setup_nss.py
+++ b/roles/ipaclient/library/ipaclient_setup_nss.py
@@ -156,6 +156,7 @@ options:
     description: True if selinux status check passed
     required: false
     type: bool
+    default: false
   krb_name:
     description: The krb5 config file name
     type: str
diff --git a/roles/ipareplica/library/ipareplica_create_ipa_conf.py b/roles/ipareplica/library/ipareplica_create_ipa_conf.py
index 582a4124bf3c0429fe71addad2737720d9eebbdb..84ba55562c20df31b191d4da364d7b75ca63ba6e 100644
--- a/roles/ipareplica/library/ipareplica_create_ipa_conf.py
+++ b/roles/ipareplica/library/ipareplica_create_ipa_conf.py
@@ -51,6 +51,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   domain:
     description: Primary DNS domain of the IPA deployment
     type: str
@@ -70,6 +71,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   no_host_dns:
     description: Do not use DNS for hostname lookup during installation
     type: bool
@@ -97,6 +99,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   force_join:
     description: Force client enrollment even if already enrolled
     type: bool
diff --git a/roles/ipareplica/library/ipareplica_install_ca_certs.py b/roles/ipareplica/library/ipareplica_install_ca_certs.py
index db0fb54ad7f76688436e0956c08181ab735e03c1..8aba576a45573e676e5ae70d4bb421b15e9aa3eb 100644
--- a/roles/ipareplica/library/ipareplica_install_ca_certs.py
+++ b/roles/ipareplica/library/ipareplica_install_ca_certs.py
@@ -51,6 +51,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   domain:
     description: Primary DNS domain of the IPA deployment
     type: str
@@ -70,6 +71,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   no_host_dns:
     description: Do not use DNS for hostname lookup during installation
     type: bool
@@ -97,6 +99,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   force_join:
     description: Force client enrollment even if already enrolled
     type: bool
@@ -156,6 +159,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
 author:
     - Thomas Woerner (@t-woerner)
 '''
diff --git a/roles/ipareplica/library/ipareplica_prepare.py b/roles/ipareplica/library/ipareplica_prepare.py
index d4464a9389c3a5ce24cea700e42fdf6c9f9ae7cb..ab772f73004dc5fed19d450a98989f9d9ce1bcfe 100644
--- a/roles/ipareplica/library/ipareplica_prepare.py
+++ b/roles/ipareplica/library/ipareplica_prepare.py
@@ -53,6 +53,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   domain:
     description: Primary DNS domain of the IPA deployment
     type: str
@@ -77,6 +78,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   no_host_dns:
     description: Do not use DNS for hostname lookup during installation
     type: bool
@@ -104,6 +106,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   dirsrv_cert_name:
     description: Name of the Directory Server SSL certificate to install
     type: str
@@ -118,6 +121,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   http_cert_name:
     description: Name of the Apache Server SSL certificate to install
     type: str
@@ -132,6 +136,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   pkinit_cert_name:
     description: Name of the Kerberos KDC SSL certificate to install
     type: str
@@ -182,6 +187,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   no_reverse:
     description: Do not create new reverse DNS zone
     type: bool
@@ -197,6 +203,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   no_forwarders:
     description: Do not add any DNS forwarders, use root servers instead
     type: bool
@@ -250,7 +257,7 @@ options:
     type: bool
     default: no
     required: no
-  client_configured:
+  ipa_client_installed:
     description: Was client configured already
     type: bool
     required: yes
diff --git a/roles/ipareplica/library/ipareplica_setup_ca.py b/roles/ipareplica/library/ipareplica_setup_ca.py
index cbecd797c6137543df125e05096a7d88afbd6d63..3323daa74b162b399e0b4d194922138864209b4b 100644
--- a/roles/ipareplica/library/ipareplica_setup_ca.py
+++ b/roles/ipareplica/library/ipareplica_setup_ca.py
@@ -127,6 +127,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
 author:
     - Thomas Woerner (@t-woerner)
 '''
diff --git a/roles/ipareplica/library/ipareplica_setup_dns.py b/roles/ipareplica/library/ipareplica_setup_dns.py
index 7dadafca8f4dbb781dd3776e4ce0e968df085bdb..d8c643e5ad6b776ca5d32815315286390c4dc424 100644
--- a/roles/ipareplica/library/ipareplica_setup_dns.py
+++ b/roles/ipareplica/library/ipareplica_setup_dns.py
@@ -61,6 +61,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   forward_policy:
     description: DNS forwarding policy for global forwarders
     type: str
diff --git a/roles/ipareplica/library/ipareplica_setup_ds.py b/roles/ipareplica/library/ipareplica_setup_ds.py
index 67e73a7eb0ddc56dd8730f4eb7987dc8f6e55f16..64f5a61b7b2473aa1ca0bde43d9cb5a694b6ffa6 100644
--- a/roles/ipareplica/library/ipareplica_setup_ds.py
+++ b/roles/ipareplica/library/ipareplica_setup_ds.py
@@ -51,6 +51,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   domain:
     description: Primary DNS domain of the IPA deployment
     type: str
@@ -70,6 +71,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   no_host_dns:
     description: Do not use DNS for hostname lookup during installation
     type: bool
@@ -108,6 +110,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   force_join:
     description: Force client enrollment even if already enrolled
     type: bool
@@ -176,6 +179,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
 author:
     - Thomas Woerner (@t-woerner)
 '''
diff --git a/roles/ipareplica/library/ipareplica_setup_kra.py b/roles/ipareplica/library/ipareplica_setup_kra.py
index 92fdfec58d2ca4bea8bca4966eff99597200d6db..866b4bc658d0af4edd9bcae6f437615c1c1a322f 100644
--- a/roles/ipareplica/library/ipareplica_setup_kra.py
+++ b/roles/ipareplica/library/ipareplica_setup_kra.py
@@ -51,6 +51,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   domain:
     description: Primary DNS domain of the IPA deployment
     type: str
@@ -70,6 +71,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   no_host_dns:
     description: Do not use DNS for hostname lookup during installation
     type: bool
@@ -101,6 +103,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   force_join:
     description: Force client enrollment even if already enrolled
     type: bool
diff --git a/roles/ipareplica/library/ipareplica_test.py b/roles/ipareplica/library/ipareplica_test.py
index fabb52aa376b7923d2c964f8cdac801277db6a05..a29368e7cb1342422dfa334535ac276d06d0d8fb 100644
--- a/roles/ipareplica/library/ipareplica_test.py
+++ b/roles/ipareplica/library/ipareplica_test.py
@@ -42,6 +42,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   domain:
     description: Primary DNS domain of the IPA deployment
     type: str
@@ -51,6 +52,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   realm:
     description: Kerberos realm name of the IPA deployment
     type: str
@@ -66,6 +68,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   hidden_replica:
     description: Install a hidden replica
     type: bool
@@ -112,18 +115,21 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   http_cert_files:
     description:
       File containing the Apache Server SSL certificate and private key
     type: list
     elements: str
     required: no
+    default: []
   pkinit_cert_files:
     description:
       File containing the Kerberos KDC SSL certificate and private key
     type: list
     elements: str
     required: no
+    default: []
   no_ntp:
     description: Do not configure ntp
     type: bool
@@ -134,6 +140,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   ntp_pool:
     description: ntp server pool to use
     type: str
@@ -153,6 +160,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   no_forwarders:
     description: Do not add any DNS forwarders, use root servers instead
     type: bool
diff --git a/roles/ipaserver/library/ipaserver_prepare.py b/roles/ipaserver/library/ipaserver_prepare.py
index 24eccf2389a6c95ea245cb12aefa23fc5ced0109..1276729fe1fcb24e1577116f9cb73099d72c770b 100644
--- a/roles/ipaserver/library/ipaserver_prepare.py
+++ b/roles/ipaserver/library/ipaserver_prepare.py
@@ -55,6 +55,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   domain:
     description: Primary DNS domain of the IPA deployment
     type: str
@@ -74,6 +75,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   no_host_dns:
     description: Do not use DNS for hostname lookup during installation
     type: bool
@@ -114,6 +116,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   subject_base:
     description:
       The certificate subject base (default O=<realm-name>).
@@ -134,6 +137,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   no_reverse:
     description: Do not create new reverse DNS zone
     type: bool
@@ -149,6 +153,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   no_forwarders:
     description: Do not add any DNS forwarders, use root servers instead
     type: bool
diff --git a/roles/ipaserver/library/ipaserver_set_ds_password.py b/roles/ipaserver/library/ipaserver_set_ds_password.py
index 2dd9a7839785ecb6f9b1e5d3d285833efab1e98f..b23c777ec09bd267df28ff4ab1dee8f7c0758047 100644
--- a/roles/ipaserver/library/ipaserver_set_ds_password.py
+++ b/roles/ipaserver/library/ipaserver_set_ds_password.py
@@ -96,6 +96,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   subject_base:
     description:
       The certificate subject base (default O=<realm-name>).
@@ -113,6 +114,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   domainlevel:
     description: The domain level
     type: int
diff --git a/roles/ipaserver/library/ipaserver_setup_ca.py b/roles/ipaserver/library/ipaserver_setup_ca.py
index 1a453e49ad792110c89f56d1d32e32b649b1d449..b71cd6185d60cba5ccce4569c140ba92379a7f8f 100644
--- a/roles/ipaserver/library/ipaserver_setup_ca.py
+++ b/roles/ipaserver/library/ipaserver_setup_ca.py
@@ -54,6 +54,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   domain:
     description: Primary DNS domain of the IPA deployment
     type: str
@@ -182,6 +183,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   no_reverse:
     description: Do not create new reverse DNS zone
     type: bool
diff --git a/roles/ipaserver/library/ipaserver_setup_dns.py b/roles/ipaserver/library/ipaserver_setup_dns.py
index cf31eda93ae163544912ed84ae560017ba32c62e..b06246c48275ac8dedf86b5a06bb6b6a3aff62fc 100644
--- a/roles/ipaserver/library/ipaserver_setup_dns.py
+++ b/roles/ipaserver/library/ipaserver_setup_dns.py
@@ -42,6 +42,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   domain:
     description: Primary DNS domain of the IPA deployment
     type: str
diff --git a/roles/ipaserver/library/ipaserver_setup_ds.py b/roles/ipaserver/library/ipaserver_setup_ds.py
index 4479daaaf8248e21112e2e8065a4dd71adb44ba1..f97770f3811eca829e8bc8d89f0987a728c61214 100644
--- a/roles/ipaserver/library/ipaserver_setup_ds.py
+++ b/roles/ipaserver/library/ipaserver_setup_ds.py
@@ -87,6 +87,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   _dirsrv_pkcs12_info:
     description: The installer _dirsrv_pkcs12_info setting
     type: list
@@ -99,6 +100,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   subject_base:
     description:
       The certificate subject base (default O=<realm-name>).
diff --git a/roles/ipaserver/library/ipaserver_setup_http.py b/roles/ipaserver/library/ipaserver_setup_http.py
index cd6478eeb8d951f8aa2568cf563ca3659e022118..3aa4b21b630fee0aa912fe2f092d091614a97a02 100644
--- a/roles/ipaserver/library/ipaserver_setup_http.py
+++ b/roles/ipaserver/library/ipaserver_setup_http.py
@@ -66,17 +66,20 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   reverse_zones:
     description: The reverse DNS zones to use
     type: list
     elements: str
     required: no
+    default: []
   http_cert_files:
     description:
       File containing the Apache Server SSL certificate and private key
     type: list
     elements: str
     required: no
+    default: []
   setup_adtrust:
     description: Configure AD trust capability
     type: bool
@@ -124,6 +127,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   subject_base:
     description:
       The certificate subject base (default O=<realm-name>).
@@ -166,6 +170,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   no_reverse:
     description: Do not create new reverse DNS zone
     type: bool
diff --git a/roles/ipaserver/library/ipaserver_setup_krb.py b/roles/ipaserver/library/ipaserver_setup_krb.py
index df37ed31a50f9845482a9d68dff808148b8761ff..9a66107ae8dca2fd349bf990a86a1e971e348f44 100644
--- a/roles/ipaserver/library/ipaserver_setup_krb.py
+++ b/roles/ipaserver/library/ipaserver_setup_krb.py
@@ -66,11 +66,13 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   reverse_zones:
     description: The reverse DNS zones to use
     type: list
     elements: str
     required: no
+    default: []
   setup_adtrust:
     description: Configure AD trust capability
     type: bool
@@ -113,6 +115,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   subject_base:
     description:
       The certificate subject base (default O=<realm-name>).
diff --git a/roles/ipaserver/library/ipaserver_test.py b/roles/ipaserver/library/ipaserver_test.py
index bf8d3b4c701f450c9c63acb7105290ca8cd561b5..06df1b7052cccee00a97eb8d186136499157ab47 100644
--- a/roles/ipaserver/library/ipaserver_test.py
+++ b/roles/ipaserver/library/ipaserver_test.py
@@ -73,6 +73,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   no_host_dns:
     description: Do not use DNS for hostname lookup during installation
     type: bool
@@ -223,6 +224,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   no_reverse:
     description: Do not create new reverse DNS zone
     type: bool
@@ -242,6 +244,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
   no_forwarders:
     description: Do not add any DNS forwarders, use root servers instead
     type: bool
diff --git a/roles/ipasmartcard_client/library/ipasmartcard_client_validate_ca_certs.py b/roles/ipasmartcard_client/library/ipasmartcard_client_validate_ca_certs.py
index 0501d38896948e800007fa7aaef90d80e50d3786..3765e334c1d4512a62dec52a7c1fc9fb2d6714a0 100644
--- a/roles/ipasmartcard_client/library/ipasmartcard_client_validate_ca_certs.py
+++ b/roles/ipasmartcard_client/library/ipasmartcard_client_validate_ca_certs.py
@@ -44,6 +44,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
 author:
     - Thomas Woerner (@t-woerner)
 '''
diff --git a/roles/ipasmartcard_server/library/ipasmartcard_server_validate_ca_certs.py b/roles/ipasmartcard_server/library/ipasmartcard_server_validate_ca_certs.py
index b776e58479ee6338fc8a3eb26aafd42a1e3caaa1..af67ec3c4f6dc01e6e45fa9116bc1570e3802c68 100644
--- a/roles/ipasmartcard_server/library/ipasmartcard_server_validate_ca_certs.py
+++ b/roles/ipasmartcard_server/library/ipasmartcard_server_validate_ca_certs.py
@@ -44,6 +44,7 @@ options:
     type: list
     elements: str
     required: no
+    default: []
 author:
     - Thomas Woerner (@t-woerner)
 '''
diff --git a/tests/utils.py b/tests/utils.py
index 9e3d5e83be0d7a1858fea9b29a58ef9b9ec5209b..666af7edb7aab928f2d70132fec261446405560a 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -306,14 +306,14 @@ class AnsibleFreeIPATestCase(TestCase):
         if res.rc != 0:
             for output in expected_output:
                 assert self.__is_text_on_data(output, res.stderr), (
-                    f"\n{'='*40}\nExpected: {output}\n{'='*40}\n"
-                    + f"Output:\n{res.stderr}{'='*40}\n"
+                    f"\n{'=' * 40}\nExpected: {output}\n{'=' * 40}\n"
+                    + f"Output:\n{res.stderr}{'=' * 40}\n"
                 )
         else:
             for output in expected_output:
                 assert self.__is_text_on_data(output, res.stdout), (
-                    f"\n{'='*40}\nExpected: {output}\n{'='*40}\n"
-                    + f"Output:\n{res.stdout}{'='*40}\n"
+                    f"\n{'=' * 40}\nExpected: {output}\n{'=' * 40}\n"
+                    + f"Output:\n{res.stdout}{'=' * 40}\n"
                 )
         kdestroy(self.master)
 
@@ -325,8 +325,8 @@ class AnsibleFreeIPATestCase(TestCase):
         res = self.master.run(cmd)
         for member in members:
             assert not self.__is_text_on_data(member, res.stdout), (
-                f"\n{'='*40}\nExpected: {member}\n{'='*40}\n"
-                + f"Output:\n{res.stdout}{'='*40}\n"
+                f"\n{'=' * 40}\nExpected: {member}\n{'=' * 40}\n"
+                + f"Output:\n{res.stdout}{'=' * 40}\n"
             )
         kdestroy(self.master)