Ejemplo n.º 1
0
    def test_env_private_key_file(self, _run):
        _run.return_value = 0
        _run.side_effect = self.assertInSubprocessEnvSideEffect('ANSIBLE_PRIVATE_KEY_FILE', "/path/to/file.pem")

        p = playbook.Playbook("some_playbook.yml", "some_inventory")
        p.set_private_key_file("/path/to/file.pem")
        p.run()
Ejemplo n.º 2
0
    def test_playbook_logs_failure(self):
        p = playbook.Playbook(self.get_playbook_path("missing_variable.yml"))
        p.logger.error = mock.MagicMock(return_value=None)

        p.run(playbook.Inventory("localhost"))

        self.assertTrue(p.logger.error.called)
Ejemplo n.º 3
0
    def test_create_Inventory_tempfile(self, tempfile):
        # Mock out mkstemp's value so we have a known location for the inventory file
        # TODO: this should be using package_resources to create this file in a local temporary
        #       test directory instead of just in '/tmp/'
        tempfile.mkstemp.return_value = (None, "/tmp/temp_inventory")

        # will use this as a side effect of _call_subprocess
        def test_temp_exists(pb_obj):
            self.assertTrue(os.path.exists("/tmp/temp_inventory"))

        # mock out _call_subprocess on Playbook - we don't want to actually call subprocess
        with mock.patch.object(playbook.Playbook, '_run', autospec=True) as _run:
            # Set a return value so we don't actually call the fuction
            _run.return_value = 0
            # set test_temp_exists as a side effect,  the playbook object will be bound to
            # pb_obj,  and self will refer to the PlaybookTestCase instance from the surrounding
            # closure. This effectively tests that the temp_inventory file exists at the time
            # we call _call_subprocess
            _run.side_effect = test_temp_exists

            p = playbook.Playbook("some_playbook.yml", playbook.Inventory(['localhost']))

            p.run()

        # Once run is complete we ensure that temp_inventory no longer exists
        # i.e.,  it has been cleaned up by the run() function
        self.assertFalse(os.path.exists("/tmp/temp_inventory"))
Ejemplo n.º 4
0
    def test_env_calback_plugin_dir(self, _run):
        _run.return_value = 0
        _run.side_effect = self.assertInSubprocessEnvSideEffect('ANSIBLE_CALLBACK_PLUGINS', "/path/to/callback_plugin/")

        p = playbook.Playbook("some_playbook.yml", "some_inventory")
        p.add_callback_plugin_dir("/path/to/callback_plugin/")
        p.run()
Ejemplo n.º 5
0
    def test_env_library_dir(self, _run):
        _run.return_value = 0
        _run.side_effect = self.assertInSubprocessEnvSideEffect('ANSIBLE_LIBRARY', "/path/to/library_dir/")

        p = playbook.Playbook("some_playbook.yml", "some_inventory")
        p.add_library_dir("/path/to/library_dir/")
        p.run()
Ejemplo n.º 6
0
    def test_env_host_key_checking(self, _run):
        _run.return_value = 0
        _run.side_effect = self.assertInSubprocessEnvSideEffect('ANSIBLE_HOST_KEY_CHECKING', "0")

        p = playbook.Playbook("some_playbook.yml", "some_inventory")
        p.set_host_key_checking(False)
        p.run()
Ejemplo n.º 7
0
 def test_cmd_multiple_extra_vars(self):
     p = playbook.Playbook("some_playbook.yml", "some_inventory")
     p.add_extra_vars("/path/to/extra_vars.yml")
     p.add_extra_vars({
         "some_variable": "some_value"
     })
     self.assertTupleInList(("-e", "@/path/to/extra_vars.yml",
                             "-e", '{"some_variable": "some_value"}'), p.cmd)
Ejemplo n.º 8
0
    def test_cmd_other_verbosity_levels(self):
        p = playbook.Playbook("some_playbook.yml", "some_inventory")
        p.verbosity = 0
        self.assertTrue("-v" not in p.cmd)
        self.assertTrue("-vv" not in p.cmd)
        self.assertTrue("-vvv" not in p.cmd)
        self.assertTrue("-vvvv" not in p.cmd)

        p.verbosity = 2
        self.assertTrue("-vv" in p.cmd)

        p.verbosity = 3
        self.assertTrue("-vvv" in p.cmd)

        p.verbosity = 4
        self.assertTrue("-vvvv" in p.cmd)
Ejemplo n.º 9
0
 def test_cmd_string_inventory(self):
     p = playbook.Playbook("some_playbook.yml", "some_inventory")
     # We use set(zip(p.cmd, p.cmd[1:])) to generate bigrams of the command
     # This ensures that we can check order of (option, value)
     self.assertTupleInList(("-i", "some_inventory"), p.cmd)
Ejemplo n.º 10
0
 def test_cmd_playbook(self):
     p = playbook.Playbook("some_playbook.yml", "some_inventory")
     self.assertEquals(p.cmd[-1], "some_playbook.yml")
Ejemplo n.º 11
0
 def test_playbook_failure_code(self):
     p = playbook.Playbook(self.get_playbook_path("missing_variable.yml"))
     p.logger = mock.MagicMock(return_value=None)
     code = p.run(playbook.Inventory("localhost"))
     self.assertNotEquals(code, 0)
Ejemplo n.º 12
0
 def test_playbook_inventory_run_argument(self):
     p = playbook.Playbook(self.get_playbook_path("successful.yml"),
                           playbook.Inventory("foo"))
     code = p.run(playbook.Inventory("localhost"))
     self.assertEquals(code, 0)
Ejemplo n.º 13
0
 def test_cmd_default_verbosity(self):
     p = playbook.Playbook("some_playbook.yml", "some_inventory")
     self.assertTrue("-v" in p.cmd)
     self.assertTrue("-vv" not in p.cmd)
     self.assertTrue("-vvv" not in p.cmd)
     self.assertTrue("-vvvv" not in p.cmd)
Ejemplo n.º 14
0
 def test_cmd_dict_extra_vars(self):
     p = playbook.Playbook("some_playbook.yml", "some_inventory")
     p.add_extra_vars({
         "some_variable": "some_value"
     })
     self.assertTupleInList(("-e", '{"some_variable": "some_value"}'), p.cmd)
Ejemplo n.º 15
0
 def test_cmd_string_extra_vars(self):
     p = playbook.Playbook("some_playbook.yml", "some_inventory")
     p.add_extra_vars("/path/to/extra_vars.yml")
     self.assertTupleInList(("-e", "@/path/to/extra_vars.yml"), p.cmd)
Ejemplo n.º 16
0
    def test_cmd_Inventory_inventory(self, tempfile):
        # mock out call to tempfile.mkstemp - make sure it returns known path
        tempfile.mkstemp.return_value = (None, "/tmp/temp_inventory")

        p = playbook.Playbook("some_playbook.yml", playbook.Inventory(['localhost']))
        self.assertTrue(("-i", "/tmp/temp_inventory"), p.cmd)
Ejemplo n.º 17
0
 def test_cmd_string_tag(self):
     p = playbook.Playbook("some_playbook.yml", "some_inventory")
     p.tags = "test_tag"
     self.assertTupleInList(("-t", "test_tag"), p.cmd)
Ejemplo n.º 18
0
 def test_cmd_list_tags(self):
     p = playbook.Playbook("some_playbook.yml", "some_inventory")
     p.tags = ["test_tag", "test_other_tag"]
     self.assertTupleInList(("-t", "test_tag,test_other_tag"), p.cmd)