# How to escape single quotes in ansible assertions?

**URL:** <https://forum.ansible.com/t/how-to-escape-single-quotes-in-ansible-assertions/36712>\
**Category:** Ansible Project\
**Created:** [June 9, 2022, 7:53pm UTC](https://forum.ansible.com/t/how-to-escape-single-quotes-in-ansible-assertions/36712 "2022-06-09T19:53:51Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Neil\_Young](https://avatars.discourse-cdn.com/v4/letter/n/a3d4f5/32.png) [@Neil\_Young](https://forum.ansible.com/u/Neil_Young)\
**Post date:** [June 9, 2022, 7:53pm UTC](https://forum.ansible.com/t/how-to-escape-single-quotes-in-ansible-assertions/36712/1 "2022-06-09T19:53:51Z")

</div>

I need to check this console output:

Kurento Media Server version: 6.16.0

Found modules:

‘core’ version 6.16.0

‘elements’ version 6.16.0

‘filters’ version 6.16.0

This assertion works:

- name: KURENTO-MEDIA-SERVER - Assert

tags: kurento-media-server-check  
assert:  
that:

- “‘Kurento Media Server version: {{ kurento\_media\_server\_version }}’ in kms\_result.stdout”  
quiet: yes

But I would like to add the ‘core’ and others too, but cannot figure out, how to escape the wrapping quotes for ‘core’, ‘filters’ and ‘elements’ in that string.

---

<div class="post-metadata">

**Author:** ![Neil\_Young](https://avatars.discourse-cdn.com/v4/letter/n/a3d4f5/32.png) [@Neil\_Young](https://forum.ansible.com/u/Neil_Young)\
**Post date:** [June 10, 2022, 12:13pm UTC](https://forum.ansible.com/t/how-to-escape-single-quotes-in-ansible-assertions/36712/2 "2022-06-10T12:13:09Z")

</div>

Any hint? Yaml single quote escaping [https://docs.ansible.com/ansible/latest/user\_guide/playbooks\_filters.html#id8](https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#id8) does not work in this case

so

- “‘’‘core’’ version {{ kurento\_media\_server\_version }}’ in kms\_result.stdout”

fails

---

<div class="post-metadata">

**Author:** ![utoddl](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/utoddl/32/249_2.png) [@utoddl](https://forum.ansible.com/u/utoddl)\
**Post date:** [June 10, 2022, 12:52pm UTC](https://forum.ansible.com/t/how-to-escape-single-quotes-in-ansible-assertions/36712/3 "2022-06-10T12:52:32Z")

</div>

Single quoted strings are easier, but here’s both:

```auto
---
- name: Quoting Quotes Tests
  hosts: localhost
  gather_facts: no
  vars:
    kurento_media_server_version: 6.16.0
    kms_result:
      stdout: |
        Kurento Media Server version: 6.16.0
        Found modules:
          'core' version 6.16.0
          'elements' version 6.16.0
          'filters' version 6.16.0
  tasks:
    - name: data dump
      assert:
        that: "{{ item }}"
      loop:
        - "'Kurento Media Server version: {{ kurento_media_server_version }}' in kms_result.stdout"
        - '"Kurento Media Server version: {{ kurento_media_server_version }}" in kms_result.stdout'
        - '"''core'' version {{ kurento_media_server_version }}" in kms_result.stdout'
        - '"''elements'' version {{ kurento_media_server_version }}" in kms_result.stdout'
        - '"''filters'' version {{ kurento_media_server_version }}" in kms_result.stdout'
        - "\"'core' version {{ kurento_media_server_version }}\" in kms_result.stdout"
        - "\"'elements' version {{ kurento_media_server_version }}\" in kms_result.stdout"
        - "\"'filters' version {{ kurento_media_server_version }}\" in kms_result.stdout"

```

---

<div class="post-metadata">

**Author:** ![Neil\_Young](https://avatars.discourse-cdn.com/v4/letter/n/a3d4f5/32.png) [@Neil\_Young](https://forum.ansible.com/u/Neil_Young)\
**Post date:** [June 10, 2022, 1:15pm UTC](https://forum.ansible.com/t/how-to-escape-single-quotes-in-ansible-assertions/36712/4 "2022-06-10T13:15:25Z")

</div>

Wow, many thanks. I would have bet that I exactly did try all these steps to no avail, but indeed - it works.

Thanks!

---

<div class="post-metadata">

**Author:** ![Walter\_Rowe](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/walter_rowe/32/4506_2.png) [@Walter\_Rowe](https://forum.ansible.com/u/Walter_Rowe)\
**Post date:** [June 13, 2022, 11:34am UTC](https://forum.ansible.com/t/how-to-escape-single-quotes-in-ansible-assertions/36712/5 "2022-06-13T11:34:50Z")

</div>

I assume kms\_result is the registered output from a prior task, thus stdout\_lines will exist and be a list of the individual lines. You can assert as many things as you like in a single “that” parameter. It accepts a list. Read the documentation.

[https://docs.ansible.com/ansible/latest/collections/ansible/builtin/assert\_module.html](https://docs.ansible.com/ansible/latest/collections/ansible/builtin/assert_module.html)

- assert:  
that:
- “Kurento Media Server version: {{ kurento\_media\_server\_version }}” in kms\_result.stdout\_lines
- “‘core’ version {{ kurento\_media\_server\_version }}” in kms\_result.stdout\_lines
- “‘elements’ version {{ kurento\_media\_server\_version }}” in kms\_result.stdout\_lines
- “‘filters’ version {{ kurento\_media\_server\_version }}” in kms\_result.stdout\_lines

---

<div class="post-metadata">

**Author:** ![Neil\_Young](https://avatars.discourse-cdn.com/v4/letter/n/a3d4f5/32.png) [@Neil\_Young](https://forum.ansible.com/u/Neil_Young)\
**Post date:** [June 13, 2022, 1:16pm UTC](https://forum.ansible.com/t/how-to-escape-single-quotes-in-ansible-assertions/36712/6 "2022-06-13T13:16:05Z")

</div>

Yes, thanks. The issue is resolved. My bad

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/ansible/original/1X/1882d9a01da5d8996a862359b0913cc568a39b84.svg) [@system](https://forum.ansible.com/u/system)\
**Post date:** [June 13, 2022, 6:53pm UTC](https://forum.ansible.com/t/how-to-escape-single-quotes-in-ansible-assertions/36712/7 "2022-06-13T18:53:09Z")

</div>

You can also avoid the moustaches in some cases:

- assert:  
&nbsp;&nbsp;&nbsp;&nbsp;that:  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- "Kurento Media Server version: " ~  
kurento\_media\_server\_version in kms\_result.stdout\_lines  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- "'core' version " ~ kurento\_media\_server\_version in  
kms\_result.stdout\_lines  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- "'elements' version" ~ kurento\_media\_server\_version in  
kms\_result.stdout\_lines  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- "'filters' version" ~ kurento\_media\_server\_version in  
kms\_result.stdout\_lines
