def test_awplus_config_lines_w_parents(self):
        lines = ["shutdown"]
        parents = ["interface port1.0.1"]
        set_module_args(dict(lines=lines, parents=parents))
        module = MagicMock()
        module.params = {"lines": lines, "parents": parents, "src": None}
        candidate_config = awplus_config.get_candidate_config(module)

        self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(
            candidate_config, self.running_config))

        commands = ["interface port1.0.1", "shutdown"]
        self.execute_module(changed=True, commands=commands)
    def test_awplus_config_match_strict(self):
        lines = ["switchport", "switchport mode access", "shutdown"]
        parents = ["interface port1.0.1"]
        set_module_args(dict(lines=lines, parents=parents, match="strict"))

        module = MagicMock()
        module.params = {"lines": lines, "parents": parents, "src": None}
        candidate_config = awplus_config.get_candidate_config(module)
        self.conn.get_diff = MagicMock(
            return_value=self.cliconf_obj.get_diff(candidate_config,
                                                   self.running_config,
                                                   diff_match="strict",
                                                   path=parents))

        commands = parents + ["shutdown"]
        self.execute_module(changed=True, commands=commands, sort=False)
    def test_awplus_config_match_none(self):
        lines = ["ip address 1.2.3.4 255.255.255.0", "description test string"]
        parents = ["interface port1.0.1"]
        set_module_args(dict(lines=lines, parents=parents, match="none"))

        module = MagicMock()
        module.params = {"lines": lines, "parents": parents, "src": None}
        candidate_config = awplus_config.get_candidate_config(module)
        self.conn.get_diff = MagicMock(
            return_value=self.cliconf_obj.get_diff(candidate_config,
                                                   self.running_config,
                                                   diff_match="none",
                                                   path=parents))

        commands = parents + lines
        self.execute_module(changed=True, commands=commands, sort=False)
 def test_awplus_config_after(self):
     lines = ["hostname foo"]
     set_module_args(dict(lines=lines, after=["test1", "test2"]))
     self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(
         "\n".join(lines), self.running_config))
     commands = ["hostname foo", "test1", "test2"]
     self.execute_module(changed=True, commands=commands, sort=False)
 def test_awplus_config_lines_wo_parents(self):
     lines = ["hostname foo"]
     set_module_args(dict(lines=lines))
     self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(
         "\n".join(lines), self.running_config))
     commands = ["hostname foo"]
     self.execute_module(changed=True, commands=commands)
 def test_awplus_config_config(self):
     config = "hostname localhost"
     lines = ["hostname R-changed"]
     set_module_args(dict(lines=lines, config=config))
     self.conn.get_diff = MagicMock(
         return_value=self.cliconf_obj.get_diff("\n".join(lines), config))
     commands = ["hostname R-changed"]
     self.execute_module(changed=True, commands=commands)
    def test_awplus_config_replace_block(self):
        lines = ["description test string", "test string"]
        parents = ["interface port1.0.1"]
        set_module_args(dict(lines=lines, replace="block", parents=parents))

        module = MagicMock()
        module.params = {"lines": lines, "parents": parents, "src": None}
        candidate_config = awplus_config.get_candidate_config(module)

        self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(
            candidate_config,
            self.running_config,
            diff_replace="block",
            path=parents,
        ))

        commands = parents + lines
        self.execute_module(changed=True, commands=commands)
 def test_awplus_config_before_after_no_change(self):
     lines = ["hostname R-changed"]
     set_module_args(
         dict(lines=lines,
              before=["test1", "test2"],
              after=["test3", "test4"]))
     self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(
         "\n".join(lines), self.running_config))
     self.execute_module()
 def test_awplus_config_src(self):
     src = load_fixture("awplus_config_src.cfg")
     set_module_args(dict(src=src))
     self.conn.get_diff = MagicMock(
         return_value=self.cliconf_obj.get_diff(src, self.running_config))
     commands = [
         "hostname foo", "interface port1.0.1", "description testing"
     ]
     self.execute_module(changed=True, commands=commands)
 def test_awplus_config_src(self):
     fixture_path = os.path.join(os.path.dirname(__file__), "fixtures")
     src = os.path.join(fixture_path, "awplus_config_src.cfg")
     set_module_args(dict(src=src))
     self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(
         load_fixture("awplus_config_src.cfg"), self.running_config))
     commands = [
         "hostname foo", "interface port1.0.1", "description testing"
     ]
     self.execute_module(changed=True, commands=commands)
    def setUp(self):
        super(TestAwplusConfigModule, self).setUp()

        self.mock_get_config = patch(
            "ansible_collections.alliedtelesis.awplus.plugins.modules.awplus_config.get_config"
        )
        self.get_config = self.mock_get_config.start()

        self.mock_get_connection = patch(
            "ansible_collections.alliedtelesis.awplus.plugins.modules.awplus_config.get_connection"
        )
        self.get_connection = self.mock_get_connection.start()

        self.conn = self.get_connection()
        self.conn.edit_config = MagicMock()

        self.mock_run_commands = patch(
            "ansible_collections.alliedtelesis.awplus.plugins.modules.awplus_config.run_commands"
        )
        self.run_commands = self.mock_run_commands.start()

        self.cliconf_obj = Cliconf(MagicMock())
        self.running_config = load_fixture("awplus_config_config.cfg")
 def test_awplus_config_save_changed_true(self):
     src = load_fixture("awplus_config_src.cfg")
     set_module_args(dict(src=src, save_when="changed"))
     commands = [
         "hostname foo", "interface port1.0.1", "description testing"
     ]
     self.conn.get_diff = MagicMock(
         return_value=self.cliconf_obj.get_diff(src, self.running_config))
     self.execute_module(changed=True, commands=commands)
     self.assertEqual(self.run_commands.call_count, 1)
     self.assertEqual(self.get_config.call_count, 1)
     self.assertEqual(self.conn.edit_config.call_count, 1)
     args = self.run_commands.call_args[0][1]
     self.assertIn("copy running-config startup-config\r", args)
 def test_awplus_config_unchanged(self):
     src = load_fixture("awplus_config_config.cfg")
     self.conn.get_diff = MagicMock(
         return_value=self.cliconf_obj.get_diff(src, src))
     set_module_args(dict(src=src))
     self.get_connection.edit_config.return_value = None
 def test_awplus_config_match_none(self):
     lines = ["hostname R-changed"]
     set_module_args(dict(lines=lines, match="none"))
     self.conn.get_diff = MagicMock(return_value=self.cliconf_obj.get_diff(
         "\n".join(lines), self.running_config, diff_match="none"))
     self.execute_module(changed=True, commands=lines)