summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/unicode/unicode.yml
blob: 672133d580da0113fe3dbe99941dfe0eeb0edc41 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
---
- name: 'A play with unicode: ¢ £ ¤ ¥'
  hosts: localhost
  vars:
    test_var:  ī Ĭ ĭ Į į İ ı IJ ij Ĵ ĵ Ķ ķ ĸ Ĺ ĺ Ļ ļ Ľ ľ Ŀ ŀ Ł ł Ń ń Ņ ņ Ň ň ʼn Ŋ ŋ Ō ō Ŏ ŏ Ő ő Œ'
    hostnames:
        - 'host-ϬϭϮϯϰ'
        - 'host-fóöbär'
        - 'host-ΙΚΛΜΝΞ'
        - 'host-στυφχψ'
        - 'host-ϬϭϮϯϰϱ'

  tasks:
    - name: 'A task name with unicode: è é ê ë'
      debug: msg='hi there'

    - name: 'A task with unicode parameters'
      debug: var=test_var

      # € ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ Ž ‘ ’ “ ” • – — ˜ ™ š › œ ž Ÿ ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ®'

    - name: 'A task using with_items containing unicode'
      debug: msg='{{item}}'
      with_items:
        -  ° ± ² ³ ´ µ  · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö ×'
        -  Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ Ā'
        -  Ă ă Ą ą Ć ć Ĉ ĉ Ċ ċ Č č Ď ď Đ đ Ē ē Ĕ ĕ Ė ė Ę ę Ě ě Ĝ ĝ Ğ ğ Ġ ġ Ģ ģ Ĥ ĥ Ħ ħ Ĩ ĩ'

    - add_host:
        name: '{{item}}'
        groups: 'ĪīĬĭ'
        ansible_ssh_host: 127.0.0.1
        ansible_connection: local
        ansible_python_interpreter: "{{ ansible_playbook_python }}"
      with_items: "{{ hostnames }}"

    - name: 'A task with unicode extra vars'
      debug: var=extra_var

    - name: 'A task with unicode host vars'
      debug: var=unicode_host_var

    - name: 'A task with unicode shell parameters'
      shell: echo '¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö ×'
      register: output

    - name: 'Assert that the unicode was echoed'
      assert:
        that:
          - "'¯ ° ± ² ³ ´ µ  · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö ×' in output.stdout_lines"

    - name: Run raw with non-ascii options
      raw: "/bin/echo Zażółć gęślą jaźń"
      register: results

    - name: Check that raw output the right thing
      assert:
        that:
          - "'Zażółć gęślą jaźń' in results.stdout_lines"

    - name: Run a script with non-ascii options and environment
      script: unicode-test-script --option "Zażółć gęślą jaźń"
      environment:
        option: Zażółć
      register: results

    - name: Check that script output includes the nonascii arguments and environment values
      assert:
        that:
          - "'--option Zażółć gęślą jaźń' in results.stdout_lines"
          - "'Zażółć' in results.stdout_lines"

    - name: Ping with non-ascii environment variable and option
      ping:
        data: "Zażółć gęślą jaźń"
      environment:
        option: Zażółć
      register: results

    - name: Check that ping with non-ascii data was correct
      assert:
        that:
          - "'Zażółć gęślą jaźń' == results.ping"

    - name: Command that echos a non-ascii env var
      command: "echo $option"
      environment:
        option: Zażółć
      register: results

    - name: Check that a non-ascii env var was passed to the command module
      assert:
        that:
          - "'Zażółć' in results.stdout_lines"

    - name: Clean a temp directory
      file:
        path: /var/tmp/ansible_test_unicode_get_put
        state: absent

    - name: Create a temp directory
      file:
        path: /var/tmp/ansible_test_unicode_get_put
        state: directory

    - name: Create a file with a non-ascii filename
      file:
        path: /var/tmp/ansible_test_unicode_get_put/Zażółć
        state: touch
      delegate_to: localhost

    - name: Put with unicode filename
      copy:
        src: /var/tmp/ansible_test_unicode_get_put/Zażółć
        dest: /var/tmp/ansible_test_unicode_get_put/Zażółć2

    - name: Fetch with unicode filename
      fetch:
        src: /var/tmp/ansible_test_unicode_get_put/Zażółć2
        dest: /var/tmp/ansible_test_unicode_get_put/

    - name: Clean a temp directory
      file:
        path: /var/tmp/ansible_test_unicode_get_put
        state: absent

- name: 'A play for hosts in group: ĪīĬĭ'
  hosts: 'ĪīĬĭ'
  gather_facts: true
  tasks:
    - debug: msg='Unicode is a good thing ™'
    - debug: msg=АБВГД

# Run this test by adding to the CLI: -e start_at_task=True --start-at-task '*¶'
- name: 'Show that we can skip to unicode named tasks'
  hosts: localhost
  gather_facts: false
  vars:
    flag: 'original'
    start_at_task: False
  tasks:
    - name: 'Override flag var'
      set_fact: flag='new'

    - name: 'A unicode task at the end of the playbook: ¶'
      assert:
        that:
          - 'flag == "original"'
      when: start_at_task|bool