forked from Mirror/pmbootstrap
Add new "pmbootstrap status" command, which does a quick health check for the work dir. As first health check, verify that the chroots are not too old. Replace the reminder text at the end of "pmbootstrap init" to tell users to run "pmbootstrap status" instead of "pmbootstrap zap" once a day before working with pmbootstrap. Related: #1829
43 lines
1.3 KiB
Python
43 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
|