pmbootstrap-meow/test/test_helpers_status.py
Oliver Smith 1724ed4665
pmbootstrap status: show if chroots are outdated (!1878)
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
2020-02-24 18:18:53 +01:00

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