def test_get_latest_pkg_version_invalid_args(): pkg_name = 'any_package' with pytest.raises(TypeError) as excinfo: NodeControlUtil.get_latest_pkg_version( pkg_name, upstream=DigitDotVersion('1.2.3'), update_cache=False) assert ("should be instance of {}".format(src_version_cls(pkg_name)) in str(excinfo.value))
def _upgrade( self, new_src_ver: SourceVersion, pkg_name: str, migrate=True, rollback=True ): curr_pkg_ver, _ = NodeControlUtil.curr_pkg_info(pkg_name) if not curr_pkg_ver: logger.error("package {} is not found".format(pkg_name)) return logger.info( "Current version of package '{}' is '{}'" .format(pkg_name, curr_pkg_ver) ) new_pkg_ver = NodeControlUtil.get_latest_pkg_version( pkg_name, upstream=new_src_ver) if not new_pkg_ver: logger.error( "Upgrade from {} to upstream version {} failed: package {} for" " upstream version is not found" .format(curr_pkg_ver, new_src_ver, pkg_name) ) return self._do_upgrade(pkg_name, curr_pkg_ver, new_pkg_ver, rollback)
def test_generated_cmd_get_latest_pkg_version(catch_generated_commands): pkg_name = 'some_package' NodeControlUtil.get_latest_pkg_version(pkg_name) assert len(generated_commands) == 2 assert generated_commands[0] == "apt update" assert generated_commands[1] == ( "apt-cache show {} | grep -E '^Version: '".format(pkg_name)) generated_commands[:] = [] upstream = src_version_cls(pkg_name)('1.2.3') NodeControlUtil.get_latest_pkg_version(pkg_name, upstream=upstream, update_cache=False) assert len(generated_commands) == 1 assert generated_commands[0] == ( "apt-cache show {} | grep -E '^Version: '".format(pkg_name))
def test_get_latest_pkg_version(monkeypatch, output, expected): def _f(command, *args, **kwargs): if not output: raise ShellError(1, command) else: return output monkeypatch.setattr(NodeControlUtil, 'run_shell_script_extended', _f) assert expected == NodeControlUtil.get_latest_pkg_version( 'any_package', update_cache=False)
def test_get_latest_pkg_version(monkeypatch, pkg_name, upstream, output, expected): def _f(command, *args, **kwargs): if not output: raise ShellError(1, command) else: return output expected = None if expected is None else src_version_cls(pkg_name)( expected) monkeypatch.setattr(NodeControlUtil, 'run_shell_script_extended', _f) res = NodeControlUtil.get_latest_pkg_version(pkg_name, upstream, update_cache=False) assert expected == res if expected is None else res.upstream
def test_get_latest_pkg_version_for_unknown_package(): assert NodeControlUtil.get_latest_pkg_version('some-unknown-package-name', update_cache=False) is None