diff --git a/lib/jnpr/junos/device.py b/lib/jnpr/junos/device.py index 6042cd5ef..80acbf570 100644 --- a/lib/jnpr/junos/device.py +++ b/lib/jnpr/junos/device.py @@ -735,6 +735,8 @@ def cli(self, command, format="text", warning=True): if rsp is True: return "" if rsp.tag in ["output", "rpc-reply"]: + if rsp.tag == "output" and rsp.getparent() is not None: + rsp = rsp.getparent() encode = None if sys.version < "3" else "unicode" return etree.tostring( rsp, method="text", with_tail=False, encoding=encode diff --git a/lib/jnpr/junos/utils/sw.py b/lib/jnpr/junos/utils/sw.py index c9e42f58e..bd2565d3b 100644 --- a/lib/jnpr/junos/utils/sw.py +++ b/lib/jnpr/junos/utils/sw.py @@ -984,11 +984,17 @@ def _progress(report): kwargs.update({"no_validate": True}) if issu is True: + if validate is False: # To Check validation is False + # Need to pass the no_validate option via kwargs + kwargs.update({"no_validate": True}) _progress("ISSU: installing software ... please be patient ...") return self.pkgaddISSU( remote_package, vmhost=vmhost, dev_timeout=timeout, **kwargs ) elif nssu is True: + if validate is False: + # Need to pass the no_validate option via kwargs + kwargs.update({"no_validate": True}) _progress("NSSU: installing software ... please be patient ...") return self.pkgaddNSSU(remote_package, dev_timeout=timeout, **kwargs) elif member_id is not None: diff --git a/tests/unit/utils/test_sw.py b/tests/unit/utils/test_sw.py index ad6cc773b..2796d8a4c 100644 --- a/tests/unit/utils/test_sw.py +++ b/tests/unit/utils/test_sw.py @@ -242,12 +242,36 @@ def test_sw_install_issu(self, mock_execute): package = "test.tgz" self.assertTrue(self.sw.install(package, issu=True, no_copy=True)) + @patch("jnpr.junos.Device.execute") + def test_sw_install_issu_validate_False(self, mock_execute): + mock_execute.side_effect = self._mock_manager + package = "test.tgz" + self.assertTrue(self.sw.install(package, issu=True, no_copy=True, validate=False)) + + @patch("jnpr.junos.Device.execute") + def test_sw_install_issu_validate_True(self, mock_execute): + mock_execute.side_effect = self._mock_manager + package = "test.tgz" + self.assertTrue(self.sw.install(package, issu=True, no_copy=True, validate=True)) + @patch("jnpr.junos.Device.execute") def test_sw_install_nssu(self, mock_execute): mock_execute.side_effect = self._mock_manager package = "test.tgz" self.assertTrue(self.sw.install(package, nssu=True, no_copy=True)) + @patch("jnpr.junos.Device.execute") + def test_sw_install_nssu_validate_False(self, mock_execute): + mock_execute.side_effect = self._mock_manager + package = "test.tgz" + self.assertTrue(self.sw.install(package, nssu=True, no_copy=True, validate=False)) + + @patch("jnpr.junos.Device.execute") + def test_sw_install_nssu_validate_True(self, mock_execute): + mock_execute.side_effect = self._mock_manager + package = "test.tgz" + self.assertTrue(self.sw.install(package, nssu=True, no_copy=True, validate=True)) + @patch("jnpr.junos.Device.execute") def test_sw_install_issu_nssu_both_error(self, mock_execute): mock_execute.side_effect = self._mock_manager