CI: make test_unreferenced_files more generic (MR 3608)
Prepare to add a new test making use of the parse_source_from_checksums() function in test_unreferenced_files.py by extending the function to not only return the checksum file names, but also the checksums. Also rename the file from test_unreferenced_files.py to test_source.py.
This commit is contained in:
parent
6dbe4fdc31
commit
3c4080e8f5
1 changed files with 13 additions and 8 deletions
|
@ -1,6 +1,7 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# Copyright 2021 Oliver Smith
|
# Copyright 2022 Oliver Smith
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
# Various checks on source= in the APKBUILDs
|
||||||
|
|
||||||
import glob
|
import glob
|
||||||
import pytest
|
import pytest
|
||||||
|
@ -21,12 +22,13 @@ def parse_source_from_checksums(args, apkbuild_path):
|
||||||
to parse shell code (like in postmarketos-base).
|
to parse shell code (like in postmarketos-base).
|
||||||
|
|
||||||
:param apkbuild_path: full path to the APKBUILD
|
:param apkbuild_path: full path to the APKBUILD
|
||||||
:returns: list of parsed "source" files, e.g.:
|
:returns: dict of parsed "source" filenames and checksums, e.g.:
|
||||||
["first.patch", "second.patch"]
|
{"first.patch": "b4dc4f3…",
|
||||||
|
"second.patch": "b4dc4f3…"}
|
||||||
"""
|
"""
|
||||||
start = 'sha512sums="'
|
start = 'sha512sums="'
|
||||||
in_block = False
|
in_block = False
|
||||||
ret = []
|
ret = {}
|
||||||
|
|
||||||
with open(apkbuild_path, encoding="utf-8") as handle:
|
with open(apkbuild_path, encoding="utf-8") as handle:
|
||||||
for line in handle.readlines():
|
for line in handle.readlines():
|
||||||
|
@ -43,18 +45,21 @@ def parse_source_from_checksums(args, apkbuild_path):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
try:
|
try:
|
||||||
_, filename = line.rstrip().split(" ", 2)
|
checksum, filename = line.rstrip().split(" ", 2)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
raise ValueError("Failed to parse checksums. Try to delete the"
|
raise ValueError("Failed to parse checksums. Try to delete the"
|
||||||
" checksums and generate them again with"
|
" checksums and generate them again with"
|
||||||
f" 'pmbootstrap checksum': {apkbuild_path}")
|
f" 'pmbootstrap checksum': {apkbuild_path}")
|
||||||
|
|
||||||
|
# Cut off 'sha512sums="' if the first checksum is in that line
|
||||||
|
if checksum.startswith(start):
|
||||||
|
checksum = checksum[len(start):]
|
||||||
|
|
||||||
# Find end
|
# Find end
|
||||||
if filename.endswith('"'):
|
if filename.endswith('"'):
|
||||||
ret += [filename[:-1]]
|
filename = filename[:-1]
|
||||||
break
|
|
||||||
|
|
||||||
ret += [filename]
|
ret[filename] = checksum
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue