|
375 | 375 | - 'remote_tmp_dir_test ~ "/astest/.hidden.txt" in astest_list' |
376 | 376 | - '"checksum" in result.files[0]' |
377 | 377 |
|
| 378 | +# Test permission error is correctly handled by find module |
| 379 | +- vars: |
| 380 | + test_dir: /tmp/permission_test |
| 381 | + block: |
| 382 | + - name: Set up content |
| 383 | + file: |
| 384 | + path: "{{ test_dir }}/{{ item.name }}" |
| 385 | + state: "{{ item.state }}" |
| 386 | + mode: "{{ item.mode }}" |
| 387 | + owner: "{{ item.owner | default(omit) }}" |
| 388 | + group: "{{ item.group | default(omit) }}" |
| 389 | + loop: |
| 390 | + - name: readable |
| 391 | + state: directory |
| 392 | + owner: "{{ test_user_name }}" |
| 393 | + mode: "1711" |
| 394 | + - name: readable/1-unreadable |
| 395 | + state: directory |
| 396 | + mode: "0700" |
| 397 | + - name: readable/2-readable |
| 398 | + state: touch |
| 399 | + owner: "{{ test_user_name }}" |
| 400 | + mode: "0777" |
| 401 | + |
| 402 | + - name: Find a file in readable directory |
| 403 | + find: |
| 404 | + paths: "{{ test_dir }}/readable/" |
| 405 | + patterns: "*" |
| 406 | + recurse: true |
| 407 | + register: permission_issue |
| 408 | + become_user: "{{ test_user_name }}" |
| 409 | + |
| 410 | + - name: Find a file in readable directory |
| 411 | + find: |
| 412 | + paths: "{{ test_dir }}/readable/" |
| 413 | + patterns: "*" |
| 414 | + recurse: true |
| 415 | + register: permission_issue |
| 416 | + become_user: "{{ test_user_name }}" |
| 417 | + become: yes |
| 418 | + |
| 419 | + - name: Check if the skipped_paths are populated correctly with permission error |
| 420 | + assert: |
| 421 | + that: |
| 422 | + - permission_issue is success |
| 423 | + - not permission_issue.changed |
| 424 | + - permission_issue.skipped_paths|length == 1 |
| 425 | + - "'{{ test_dir }}/readable/1-unreadable' in permission_issue.skipped_paths" |
| 426 | + - "'Permission denied' in permission_issue.skipped_paths['{{ test_dir }}/readable/1-unreadable']" |
| 427 | + - permission_issue.matched == 1 |
| 428 | + always: |
| 429 | + - name: cleanup test directory |
| 430 | + file: |
| 431 | + dest: "{{ test_dir }}" |
| 432 | + state: absent |
| 433 | + |
378 | 434 | - name: Run mode tests |
379 | 435 | import_tasks: mode.yml |
0 commit comments