pmbootstrap/test/test_helpers_status.py

44 lines
1.3 KiB
Python

# Copyright 2020 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
""" Test pmb/helpers/status.py """
import pytest
import sys
import pmb_test # noqa
import pmb.config
import pmb.config.workdir
@pytest.fixture
def args(request):
import pmb.parse
sys.argv = ["pmbootstrap", "init"]
args = pmb.parse.arguments()
args.log = args.work + "/log_testsuite.txt"
pmb.helpers.logging.init(args)
request.addfinalizer(args.logfd.close)
return args
def test_pmbootstrap_status(args, tmpdir):
""" High level testing of 'pmbootstrap status': run it twice, once with
a fine workdir, and once where one check is failing. """
# Prepare empty workdir
work = str(tmpdir)
with open(work + "/version", "w") as handle:
handle.write(str(pmb.config.work_version))
# "pmbootstrap status" succeeds (pmb.helpers.run.user verifies exit 0)
pmbootstrap = pmb.config.pmb_src + "/pmbootstrap.py"
pmb.helpers.run.user(args, [pmbootstrap, "-w", work, "status",
"--details"])
# Mark chroot_native as outdated
with open(work + "/workdir.cfg", "w") as handle:
handle.write("[chroot-init-dates]\nnative = 1234\n")
# "pmbootstrap status" fails
ret = pmb.helpers.run.user(args, [pmbootstrap, "-w", work, "status"],
check=False)
assert ret == 1