# (C) 2013, Michael Scherer, # 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 . import os import unittest import subprocess # if you change here, also change in the plugin FILE_DISABLE = '/tmp/ansible_test_disable' FILE_RUN = '/tmp/ansible_test_finish' class TestInventory(unittest.TestCase): def setUp(self): self.cwd = os.getcwd() os.chdir(os.path.join(os.path.dirname(__file__), 'test_callbacks')) def clean_file(self): if os.path.exists(FILE_RUN): os.unlink(FILE_RUN) if os.path.exists(FILE_DISABLE): os.unlink(FILE_DISABLE) def tearDown(self): os.chdir(self.cwd) def run_ansible_playbook(self): subprocess.call(('source ../../hacking/env-setup 2>&1 >/dev/null;' 'ansible-playbook -i "127.0.0.1," test_playbook.yml 2>&1 >/dev/null'), shell=True, executable='/bin/bash') def test_callback(self): self.clean_file() self.run_ansible_playbook() assert os.path.exists(FILE_RUN) self.clean_file() def test_callback_disabled(self): self.clean_file() open(FILE_DISABLE, 'w').close() self.run_ansible_playbook() assert not os.path.exists(FILE_RUN) self.clean_file()