1--- 2- name: create source (check mode) 3 win_chocolatey_source: 4 name: chocolatey 5 source: https://chocolatey.org/api/v2/ 6 state: present 7 register: create_check 8 check_mode: yes 9 10- name: check if source exists (check mode) 11 choco_source: 12 register: create_actual_check 13 14- name: assert create source (check mode) 15 assert: 16 that: 17 - create_check is changed 18 - create_actual_check.sources == [] 19 20- name: create source 21 win_chocolatey_source: 22 name: chocolatey 23 source: https://chocolatey.org/api/v2/ 24 state: present 25 register: create 26 27- name: check if source exists 28 choco_source: 29 register: create_actual 30 31- name: assert create source 32 assert: 33 that: 34 - create is changed 35 - create_actual.sources|length == 1 36 - create_actual.sources[0].name == 'chocolatey' 37 - create_actual.sources[0].source == 'https://chocolatey.org/api/v2/' 38 - create_actual.sources[0].disabled == False 39 - create_actual.sources[0].source_username == None 40 - create_actual.sources[0].priority == 0 41 - create_actual.sources[0].certificate == None 42 - create_actual.sources[0].bypass_proxy == False 43 - create_actual.sources[0].allow_self_service == False 44 - create_actual.sources[0].admin_only == False 45 46- name: create source (idempotent) 47 win_chocolatey_source: 48 name: chocolatey 49 source: https://chocolatey.org/api/v2/ 50 state: present 51 register: create_again 52 53- name: assert create source (idempotent) 54 assert: 55 that: 56 - not create_again is changed 57 58- name: remove source (check mode) 59 win_chocolatey_source: 60 name: chocolatey 61 state: absent 62 register: remove_check 63 check_mode: yes 64 65- name: check if source is removed (check mode) 66 choco_source: 67 register: remove_actual_check 68 69- name: assert remove source (check mode) 70 assert: 71 that: 72 - remove_check is changed 73 - remove_actual_check.sources == create_actual.sources 74 75- name: remove source 76 win_chocolatey_source: 77 name: chocolatey 78 state: absent 79 register: remove 80 81- name: check if source is removed 82 choco_source: 83 register: remove_actual 84 85- name: assert remove source 86 assert: 87 that: 88 - remove is changed 89 - remove_actual.sources == [] 90 91- name: remove source (idempotent) 92 win_chocolatey_source: 93 name: chocolatey 94 state: absent 95 register: remove_again 96 97- name: assert remove source (idempotent) 98 assert: 99 that: 100 - not remove_again is changed 101 102- name: create a disabled service (check mode) 103 win_chocolatey_source: 104 name: '{{ test_chocolatey_name }}' 105 source: C:\chocolatey repos 106 source_username: username 107 source_password: password 108 certificate: C:\cert.pfx 109 certificate_password: password 110 bypass_proxy: yes 111 priority: 1 112 state: disabled 113 register: create_special_check 114 check_mode: yes 115 116- name: check if source is created (check mode) 117 choco_source: 118 register: create_special_actual_check 119 120- name: assert create a disabled service (check mode) 121 assert: 122 that: 123 - create_special_check is changed 124 - create_special_actual_check.sources == [] 125 126- name: create a disabled service 127 win_chocolatey_source: 128 name: '{{ test_chocolatey_name }}' 129 source: C:\chocolatey repos 130 source_username: username 131 source_password: password 132 certificate: C:\cert.pfx 133 certificate_password: password 134 bypass_proxy: yes 135 priority: 1 136 state: disabled 137 register: create_special 138 139- name: check if source is created 140 choco_source: 141 register: create_special_actual 142 143- name: assert create a disabled service 144 assert: 145 that: 146 - create_special is changed 147 - create_special_actual.sources|length == 1 148 - create_special_actual.sources[0].name == test_chocolatey_name 149 - create_special_actual.sources[0].source == 'C:\\chocolatey repos' 150 - create_special_actual.sources[0].disabled == True 151 - create_special_actual.sources[0].source_username == 'username' 152 - create_special_actual.sources[0].priority == 1 153 - create_special_actual.sources[0].certificate == 'C:\\cert.pfx' 154 - create_special_actual.sources[0].bypass_proxy == True 155 - create_special_actual.sources[0].allow_self_service == False 156 - create_special_actual.sources[0].admin_only == False 157 158- name: create a disabled service pass always update 159 win_chocolatey_source: 160 name: '{{ test_chocolatey_name }}' 161 source: C:\chocolatey repos 162 source_username: username 163 source_password: password 164 certificate: C:\cert.pfx 165 certificate_password: password 166 bypass_proxy: yes 167 priority: 1 168 state: disabled 169 register: create_special_pass_always 170 171- name: assert create a disabled service pass always update 172 assert: 173 that: 174 - create_special_pass_always is changed 175 176- name: create a disabled service (idempotent) 177 win_chocolatey_source: 178 name: '{{ test_chocolatey_name }}' 179 source: C:\chocolatey repos 180 source_username: username 181 source_password: password 182 certificate: C:\cert.pfx 183 certificate_password: password 184 bypass_proxy: yes 185 priority: 1 186 state: disabled 187 update_password: on_create 188 register: create_special_again 189 190- name: assert create a disabled service (idempotent) 191 assert: 192 that: 193 - not create_special_again is changed 194 195- name: edit an existing source (check mode) 196 win_chocolatey_source: 197 name: '{{ test_chocolatey_name }}' 198 source: C:\chocolatey repos2 199 source_username: username2 200 source_password: password2 201 certificate: C:\cert2.pfx 202 priority: '5' 203 state: present 204 update_password: on_create 205 admin_only: yes 206 allow_self_service: yes 207 register: modify_source_check 208 check_mode: yes 209 210- name: check if source is changed (check mode) 211 choco_source: 212 register: modify_source_check_actual 213 214- name: assert edit an existing source (check mode) 215 assert: 216 that: 217 - modify_source_check is changed 218 - modify_source_check_actual.sources == create_special_actual.sources 219 220- name: edit an existing source 221 win_chocolatey_source: 222 name: '{{ test_chocolatey_name }}' 223 source: C:\chocolatey repos2 224 source_username: username2 225 source_password: password2 226 certificate: C:\cert2.pfx 227 priority: '5' 228 state: present 229 update_password: on_create 230 admin_only: yes 231 allow_self_service: yes 232 register: modify_source 233 234- name: check if source is changed 235 choco_source: 236 register: modify_source_actual 237 238- name: assert edit an existing source 239 assert: 240 that: 241 - modify_source is changed 242 - modify_source_actual.sources[0].name == test_chocolatey_name 243 - modify_source_actual.sources[0].source == 'C:\\chocolatey repos2' 244 - modify_source_actual.sources[0].disabled == False 245 - modify_source_actual.sources[0].source_username == 'username2' 246 - modify_source_actual.sources[0].priority == 5 247 - modify_source_actual.sources[0].certificate == 'C:\\cert2.pfx' 248 - modify_source_actual.sources[0].bypass_proxy == False 249 - modify_source_actual.sources[0].allow_self_service == True 250 - modify_source_actual.sources[0].admin_only == True 251 252- name: edit an existing source (idempotent) 253 win_chocolatey_source: 254 name: '{{ test_chocolatey_name }}' 255 source: C:\chocolatey repos2 256 source_username: username2 257 source_password: password2 258 certificate: C:\cert2.pfx 259 priority: '5' 260 state: present 261 update_password: on_create 262 admin_only: yes 263 allow_self_service: yes 264 register: modify_source_again 265 266- name: assert edit an existing source (idempotent) 267 assert: 268 that: 269 - not modify_source_again is changed 270 271- name: disable source (check mode) 272 win_chocolatey_source: 273 name: '{{ test_chocolatey_name }}' 274 state: disabled 275 register: disable_source_check 276 check_mode: True 277 278- name: get result of disable source (check mode) 279 choco_source: 280 register: disable_source_actual_check 281 282- name: assert disable source (check mode) 283 assert: 284 that: 285 - disable_source_check is changed 286 - disable_source_actual_check.sources == modify_source_actual.sources 287 288- name: disable source 289 win_chocolatey_source: 290 name: '{{ test_chocolatey_name }}' 291 state: disabled 292 register: disable_source 293 294- name: get result of disable source 295 choco_source: 296 register: disable_source_actual 297 298- name: assert disable source 299 assert: 300 that: 301 - disable_source is changed 302 - disable_source_actual.sources[0].name == test_chocolatey_name 303 - disable_source_actual.sources[0].source == 'C:\\chocolatey repos2' 304 - disable_source_actual.sources[0].disabled == True 305 - disable_source_actual.sources[0].source_username == 'username2' 306 - disable_source_actual.sources[0].priority == 5 307 - disable_source_actual.sources[0].certificate == 'C:\\cert2.pfx' 308 - disable_source_actual.sources[0].bypass_proxy == False 309 - disable_source_actual.sources[0].allow_self_service == True 310 - disable_source_actual.sources[0].admin_only == True 311 312- name: disable source (idempotent) 313 win_chocolatey_source: 314 name: '{{ test_chocolatey_name }}' 315 state: disabled 316 register: disable_source_again 317 318- name: assert disable source (idempotent) 319 assert: 320 that: 321 - not disable_source_again is changed 322 323- name: enable source (check mode) 324 win_chocolatey_source: 325 name: '{{ test_chocolatey_name }}' 326 state: present 327 register: enable_source_check 328 check_mode: True 329 330- name: get result of enable source (check mode) 331 choco_source: 332 register: enable_source_actual_check 333 334- name: assert enable source (check mode) 335 assert: 336 that: 337 - enable_source_check is changed 338 - enable_source_actual_check.sources == disable_source_actual.sources 339 340- name: enable source 341 win_chocolatey_source: 342 name: '{{ test_chocolatey_name }}' 343 state: present 344 register: enable_source 345 346- name: get result of enable source 347 choco_source: 348 register: enable_source_actual 349 350- name: assert enable source 351 assert: 352 that: 353 - enable_source is changed 354 - enable_source_actual.sources[0].name == test_chocolatey_name 355 - enable_source_actual.sources[0].source == 'C:\\chocolatey repos2' 356 - enable_source_actual.sources[0].disabled == False 357 - enable_source_actual.sources[0].source_username == 'username2' 358 - enable_source_actual.sources[0].priority == 5 359 - enable_source_actual.sources[0].certificate == 'C:\\cert2.pfx' 360 - enable_source_actual.sources[0].bypass_proxy == False 361 - enable_source_actual.sources[0].allow_self_service == True 362 - enable_source_actual.sources[0].admin_only == True 363 364- name: enable source (idempotent) 365 win_chocolatey_source: 366 name: '{{ test_chocolatey_name }}' 367 state: present 368 register: enable_source_again 369 370- name: assert enable source (idempotent) 371 assert: 372 that: 373 - not enable_source_again is changed 374