test/test_zzz_keys.py: move from test/test_keys.py

Rename the file so it runs last, as it's currently failing a lot of
times on sourcehut. When I looked into it last time, it seemed to be
related to CDN caching and then it worked again so I didn't look further
into it at the time. Move it to the end until this is figured out
properly, so at least we see if all other tests are passing.
This commit is contained in:
Oliver Smith 2023-03-24 09:00:52 +01:00
parent 51afc91c7d
commit 06949ae870
No known key found for this signature in database
GPG key ID: 5AE7F5513E0885CB

View file

@ -1,67 +0,0 @@
# Copyright 2023 Oliver Smith
# SPDX-License-Identifier: GPL-3.0-or-later
import os
import sys
import pytest
import glob
import filecmp
import pmb_test # noqa
import pmb.parse.apkindex
import pmb.helpers.logging
import pmb.config
@pytest.fixture
def args(request):
import pmb.parse
sys.argv = ["pmbootstrap.py", "chroot"]
args = pmb.parse.arguments()
args.log = args.work + "/log_testsuite.txt"
pmb.helpers.logging.init(args)
request.addfinalizer(pmb.helpers.logging.logfd.close)
return args
def test_keys(args):
# Get the alpine-keys apk filename
pmb.chroot.init(args)
version = pmb.parse.apkindex.package(args, "alpine-keys")["version"]
pattern = (args.work + "/cache_apk_" + pmb.config.arch_native +
"/alpine-keys-" + version + ".*.apk")
filename = os.path.basename(glob.glob(pattern)[0])
# Extract it to a temporary folder
temp = "/tmp/test_keys_extract"
temp_outside = args.work + "/chroot_native" + temp
if os.path.exists(temp_outside):
pmb.chroot.root(args, ["rm", "-r", temp])
pmb.chroot.user(args, ["mkdir", "-p", temp])
pmb.chroot.user(args, ["tar", "xvf", "/var/cache/apk/" + filename],
working_dir=temp)
# Get all relevant key file names as {"filename": "full_outside_path"}
keys_upstream = {}
for arch in pmb.config.build_device_architectures + ["x86_64"]:
pattern = temp_outside + "/usr/share/apk/keys/" + arch + "/*.pub"
for path in glob.glob(pattern):
keys_upstream[os.path.basename(path)] = path
assert len(keys_upstream)
# Check if the keys are mirrored correctly
mirror_path_keys = pmb.config.apk_keys_path
for key, original_path in keys_upstream.items():
mirror_path = mirror_path_keys + "/" + key
assert filecmp.cmp(mirror_path, original_path, False)
# Find postmarketOS keys
keys_pmos = ["build.postmarketos.org.rsa.pub"]
for key in keys_pmos:
assert os.path.exists(mirror_path_keys + "/" + key)
# Find outdated keys, which need to be removed
glob_result = glob.glob(mirror_path_keys + "/*.pub")
assert len(glob_result)
for path in glob_result:
key = os.path.basename(key)
assert key in keys_pmos or key in keys_upstream