From edbe7a4514500c75611834f7823b921968a62555 Mon Sep 17 00:00:00 2001 From: Chris Church Date: Thu, 19 Jun 2014 11:20:11 -0500 Subject: [PATCH] Add tests for win_stat module. --- library/windows/win_stat | 3 +- library/windows/win_stat.ps1 | 8 +- .../roles/test_win_stat/tasks/main.yml | 80 +++++++++++++++++++ test/integration/test_winrm.yml | 1 + 4 files changed, 89 insertions(+), 3 deletions(-) create mode 100644 test/integration/roles/test_win_stat/tasks/main.yml diff --git a/library/windows/win_stat b/library/windows/win_stat index 5aba801a67d..c98cd55f599 100644 --- a/library/windows/win_stat +++ b/library/windows/win_stat @@ -27,7 +27,8 @@ description: options: path: description: - - The full path of the file/object to get the facts of + - The full path of the file/object to get the facts of; both forward and + back slashes are accepted. required: true default: null aliases: [] diff --git a/library/windows/win_stat.ps1 b/library/windows/win_stat.ps1 index fa5596ec1b7..a5748a8bda0 100644 --- a/library/windows/win_stat.ps1 +++ b/library/windows/win_stat.ps1 @@ -19,16 +19,20 @@ $params = Parse-Args $args; -$path = ''; +$path = $FALSE; If ($params.path.GetType) { $path = $params.path; } +If ($path -eq $FALSE) +{ + Fail-Json (New-Object psobject) "missing required argument: path"; +} $get_md5 = $TRUE; If ($params.get_md5.GetType) { - $get_md5 = $params.get_md5; + $get_md5 = $params.get_md5 | ConvertTo-Bool; } $result = New-Object psobject @{ diff --git a/test/integration/roles/test_win_stat/tasks/main.yml b/test/integration/roles/test_win_stat/tasks/main.yml new file mode 100644 index 00000000000..a526976ec9c --- /dev/null +++ b/test/integration/roles/test_win_stat/tasks/main.yml @@ -0,0 +1,80 @@ +# test code for the win_stat module +# (c) 2014, Chris Church + +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see . + +- name: test win_stat module on file + win_stat: path="C:/Windows/win.ini" + register: win_stat_file + +- name: check win_stat file result + assert: + that: + - "win_stat_file.stat.exists" + - "not win_stat_file.stat.isdir" + - "win_stat_file.stat.size > 0" + - "win_stat_file.stat.md5" + - "not win_stat_file|failed" + - "not win_stat_file|changed" + +- name: test win_stat module on file without md5 and backslashes + win_stat: path="C:\Windows\win.ini" get_md5=no + register: win_stat_file_no_md5 + +- name: check win_stat file result without md + assert: + that: + - "win_stat_file_no_md5.stat.exists" + - "not win_stat_file_no_md5.stat.isdir" + - "win_stat_file_no_md5.stat.size > 0" + - "not win_stat_file_no_md5.stat.md5|default('')" + - "not win_stat_file_no_md5|failed" + - "not win_stat_file_no_md5|changed" + +- name: test win_stat module on directory + win_stat: path="C:\\Windows" + register: win_stat_dir + +- name: check win_stat dir result + assert: + that: + - "win_stat_dir.stat.exists" + - "win_stat_dir.stat.isdir" + - "not win_stat_dir|failed" + - "not win_stat_dir|changed" + +- name: test win_stat module non-existent path + win_stat: path="C:/this_file_should_not_exist.txt" + register: win_stat_missing + +- name: check win_stat missing result + assert: + that: + - "not win_stat_missing.stat.exists" + - "not win_stat_missing|failed" + - "not win_stat_missing|changed" + +- name: test win_stat module without path argument + action: win_stat + register: win_stat_no_args + ignore_errors: true + +- name: check win_stat result witn no path argument + assert: + that: + - "win_stat_no_args|failed" + - "win_stat_no_args.msg" + - "not win_stat_no_args|changed" diff --git a/test/integration/test_winrm.yml b/test/integration/test_winrm.yml index 12c68e6dbc1..f8bde65912b 100644 --- a/test/integration/test_winrm.yml +++ b/test/integration/test_winrm.yml @@ -8,3 +8,4 @@ - { role: test_win_ping, tags: test_win_ping } - { role: test_win_slurp, tags: test_win_slurp } - { role: test_win_fetch, tags: test_win_fetch } + - { role: test_win_stat, tags: test_win_stat }