Exemplo n.º 1
0
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))
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
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))
Exemplo n.º 4
0
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
Exemplo n.º 6
0
def test_get_latest_pkg_version_for_unknown_package():
    assert NodeControlUtil.get_latest_pkg_version('some-unknown-package-name',
                                                  update_cache=False) is None