mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-06 22:54:16 +02:00
[arch] fix -> AUR: not properly extracting srcinfo data when several pkgnames are declared
This commit is contained in:
27
tests/gems/arch/resources/bauh_srcinfo
Normal file
27
tests/gems/arch/resources/bauh_srcinfo
Normal file
@@ -0,0 +1,27 @@
|
||||
pkgbase = bauh
|
||||
pkgdesc = Graphical interface for managing your applications ( AppImage, Flatpak, Snap, Arch/AUR, Web )
|
||||
pkgver = 0.9.6
|
||||
pkgrel = 2
|
||||
url = https://github.com/vinifmor/bauh
|
||||
arch = any
|
||||
license = zlib/libpng
|
||||
makedepends = git
|
||||
makedepends = python
|
||||
makedepends = python-pip
|
||||
makedepends = python-setuptools
|
||||
depends = python
|
||||
depends = python-pyqt5
|
||||
depends = python-pyqt5-sip
|
||||
depends = python-requests
|
||||
depends = python-colorama
|
||||
depends = python-pyaml
|
||||
depends = qt5-svg
|
||||
optdepends = flatpak: required for Flatpak support
|
||||
optdepends = snapd: required for Snap support
|
||||
optdepends = python-beautifulsoup4: for Native Web applications support
|
||||
optdepends = python-lxml: for Native Web applications support
|
||||
source = https://github.com/vinifmor/bauh/archive/0.9.6.tar.gz
|
||||
sha512sums = cb1820b8a41dccec746d91d71b7f524c2e3caf6b30b0cd9666598b8ad49302654d9ce9bd1a0a2a9612afebc27ef78a2a94ac10e4e6c183742effe4feeabaa7b2
|
||||
|
||||
pkgname = bauh
|
||||
|
||||
36
tests/gems/arch/resources/mangohud_srcinfo
Normal file
36
tests/gems/arch/resources/mangohud_srcinfo
Normal file
@@ -0,0 +1,36 @@
|
||||
pkgbase = mangohud
|
||||
pkgver = 0.5.1
|
||||
pkgrel = 3
|
||||
url = https://github.com/flightlessmango/MangoHud
|
||||
arch = x86_64
|
||||
license = MIT
|
||||
makedepends = meson
|
||||
makedepends = python-mako
|
||||
makedepends = glslang
|
||||
makedepends = libglvnd
|
||||
makedepends = lib32-libglvnd
|
||||
makedepends = vulkan-headers
|
||||
makedepends = vulkan-icd-loader
|
||||
makedepends = lib32-vulkan-icd-loader
|
||||
makedepends = libxnvctrl
|
||||
source = mangohud-0.5.1.tar.gz::https://github.com/flightlessmango/MangoHud/archive/v0.5.1.tar.gz
|
||||
sha256sums = 3e91d4fc7369d46763894c13f3315133871dd02705072981770c3cf58e8081c6
|
||||
|
||||
pkgname = mangohud
|
||||
pkgdesc = A Vulkan overlay layer for monitoring FPS, temperatures, CPU/GPU load and more
|
||||
depends = gcc-libs
|
||||
depends = mangohud-common
|
||||
optdepends = bash: mangohud helper script
|
||||
optdepends = libxnvctrl: support for older NVIDIA GPUs
|
||||
|
||||
pkgname = lib32-mangohud
|
||||
pkgdesc = A Vulkan overlay layer for monitoring FPS, temperatures, CPU/GPU load and more (32-bit)
|
||||
depends = lib32-gcc-libs
|
||||
depends = mangohud
|
||||
depends = mangohud-common
|
||||
optdepends = lib32-libxnvctrl: support for older NVIDIA GPUs
|
||||
|
||||
pkgname = mangohud-common
|
||||
pkgdesc = Common files for mangohud and lib32-mangohud
|
||||
optdepends = bash: mangohud helper script
|
||||
|
||||
266
tests/gems/arch/test_aur.py
Normal file
266
tests/gems/arch/test_aur.py
Normal file
@@ -0,0 +1,266 @@
|
||||
import os
|
||||
from unittest import TestCase
|
||||
|
||||
from bauh.gems.arch import aur
|
||||
|
||||
FILE_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
|
||||
class AURModuleTest(TestCase):
|
||||
|
||||
def test_map_srcinfo__only_one_pkgname(self):
|
||||
expected_fields = {
|
||||
'pkgbase': 'bauh',
|
||||
'pkgname': 'bauh',
|
||||
'pkgver': '0.9.6',
|
||||
'pkgrel': '2',
|
||||
'url': 'https://github.com/vinifmor/bauh',
|
||||
'arch': 'any',
|
||||
'license': 'zlib/libpng',
|
||||
'makedepends': ['git', 'python', 'python-pip', 'python-setuptools'],
|
||||
'depends': [
|
||||
'python', 'python-colorama', 'python-pyaml', 'python-pyqt5', 'python-pyqt5-sip', 'python-requests', 'qt5-svg'
|
||||
],
|
||||
'optdepends': [
|
||||
'flatpak: required for Flatpak support',
|
||||
'python-beautifulsoup4: for Native Web applications support',
|
||||
'python-lxml: for Native Web applications support',
|
||||
'snapd: required for Snap support'
|
||||
],
|
||||
'source': ['https://github.com/vinifmor/bauh/archive/0.9.6.tar.gz'],
|
||||
'sha512sums': ['cb1820b8a41dccec746d91d71b7f524c2e3caf6b30b0cd9666598b8ad49302654d9ce9bd1a0a2a9612afebc27ef78a2a94ac10e4e6c183742effe4feeabaa7b2']
|
||||
}
|
||||
|
||||
with open(FILE_DIR + '/resources/bauh_srcinfo') as f:
|
||||
srcinfo = f.read()
|
||||
|
||||
res = aur.map_srcinfo(srcinfo, 'bauh')
|
||||
|
||||
for key, val in expected_fields.items():
|
||||
self.assertIn(key, res, "key '{}' not in res".format(key))
|
||||
|
||||
if isinstance(val, list):
|
||||
val.sort()
|
||||
res[key].sort()
|
||||
|
||||
self.assertEqual(val, res[key], "expected: {}. current: {}".format(val, res[key]))
|
||||
|
||||
def test_map_srcinfo__one_name__only_specific_fields(self):
|
||||
expected_fields = {
|
||||
'pkgver': '0.9.6',
|
||||
'pkgrel': '2'
|
||||
}
|
||||
|
||||
with open(FILE_DIR + '/resources/bauh_srcinfo') as f:
|
||||
srcinfo = f.read()
|
||||
|
||||
res = aur.map_srcinfo(srcinfo, 'bauh', fields={*expected_fields.keys()})
|
||||
|
||||
self.assertEqual(len(expected_fields), len(res), "Expected: {}. Current: {}".format(len(expected_fields), len(res)))
|
||||
|
||||
for key, val in expected_fields.items():
|
||||
self.assertIn(key, res, "key '{}' not in res".format(key))
|
||||
|
||||
if isinstance(val, list):
|
||||
val.sort()
|
||||
res[key].sort()
|
||||
|
||||
self.assertEqual(val, res[key], "expected: {}. current: {}".format(val, res[key]))
|
||||
|
||||
def test_map_srcinfo__several_pkgnames__pkgname_specified_case_1(self):
|
||||
expected_fields = {
|
||||
'pkgbase': 'mangohud',
|
||||
'pkgname': 'mangohud',
|
||||
'pkgver': '0.5.1',
|
||||
'pkgrel': '3',
|
||||
'pkgdesc': 'A Vulkan overlay layer for monitoring FPS, temperatures, CPU/GPU load and more',
|
||||
'source': ['mangohud-0.5.1.tar.gz::https://github.com/flightlessmango/MangoHud/archive/v0.5.1.tar.gz'],
|
||||
'sha256sums': ['3e91d4fc7369d46763894c13f3315133871dd02705072981770c3cf58e8081c6'],
|
||||
'license': 'MIT',
|
||||
'arch': 'x86_64',
|
||||
'url': 'https://github.com/flightlessmango/MangoHud',
|
||||
'makedepends': [
|
||||
'glslang', 'libglvnd', 'lib32-libglvnd', 'meson', 'python-mako', 'vulkan-headers', 'vulkan-icd-loader',
|
||||
'lib32-vulkan-icd-loader', 'libxnvctrl'
|
||||
],
|
||||
'depends': ['gcc-libs', 'mangohud-common'],
|
||||
'optdepends': ['bash: mangohud helper script', 'libxnvctrl: support for older NVIDIA GPUs']
|
||||
}
|
||||
|
||||
with open(FILE_DIR + '/resources/mangohud_srcinfo') as f:
|
||||
srcinfo = f.read()
|
||||
|
||||
res = aur.map_srcinfo(srcinfo, 'mangohud')
|
||||
|
||||
self.assertEqual(len(expected_fields), len(res), "Expected: {}. Current: {}".format(len(expected_fields), len(res)))
|
||||
|
||||
for key, val in expected_fields.items():
|
||||
self.assertIn(key, res, "key '{}' not in res".format(key))
|
||||
|
||||
if isinstance(val, list):
|
||||
val.sort()
|
||||
|
||||
if isinstance(res[key], list):
|
||||
res[key].sort()
|
||||
|
||||
self.assertEqual(val, res[key], "expected: {}. current: {}".format(val, res[key]))
|
||||
|
||||
def test_map_srcinfo__several_pkgnames__pkgname_specified_case_2(self):
|
||||
expected_fields = {
|
||||
'pkgbase': 'mangohud',
|
||||
'pkgname': 'mangohud-common',
|
||||
'pkgver': '0.5.1',
|
||||
'pkgrel': '3',
|
||||
'pkgdesc': 'Common files for mangohud and lib32-mangohud',
|
||||
'source': ['mangohud-0.5.1.tar.gz::https://github.com/flightlessmango/MangoHud/archive/v0.5.1.tar.gz'],
|
||||
'sha256sums': ['3e91d4fc7369d46763894c13f3315133871dd02705072981770c3cf58e8081c6'],
|
||||
'license': 'MIT',
|
||||
'url': 'https://github.com/flightlessmango/MangoHud',
|
||||
'arch': 'x86_64',
|
||||
'makedepends': [
|
||||
'glslang', 'libglvnd', 'lib32-libglvnd', 'meson', 'python-mako', 'vulkan-headers', 'vulkan-icd-loader',
|
||||
'lib32-vulkan-icd-loader', 'libxnvctrl'
|
||||
],
|
||||
'optdepends': ['bash: mangohud helper script']
|
||||
}
|
||||
|
||||
with open(FILE_DIR + '/resources/mangohud_srcinfo') as f:
|
||||
srcinfo = f.read()
|
||||
|
||||
res = aur.map_srcinfo(srcinfo, 'mangohud-common')
|
||||
self.assertEqual(len(expected_fields), len(res), "Expected: {}. Current: {}".format(len(expected_fields), len(res)))
|
||||
|
||||
for key, val in expected_fields.items():
|
||||
self.assertIn(key, res, "key '{}' not in res".format(key))
|
||||
|
||||
if isinstance(val, list):
|
||||
val.sort()
|
||||
|
||||
if isinstance(res[key], list):
|
||||
res[key].sort()
|
||||
|
||||
self.assertEqual(val, res[key], "expected: {}. current: {}".format(val, res[key]))
|
||||
|
||||
def test_map_srcinfo__several_pkgnames__pkgname_specified_case_3(self):
|
||||
expected_fields = {
|
||||
'pkgbase': 'mangohud',
|
||||
'pkgname': 'lib32-mangohud',
|
||||
'pkgver': '0.5.1',
|
||||
'pkgrel': '3',
|
||||
'pkgdesc': 'A Vulkan overlay layer for monitoring FPS, temperatures, CPU/GPU load and more (32-bit)',
|
||||
'source': ['mangohud-0.5.1.tar.gz::https://github.com/flightlessmango/MangoHud/archive/v0.5.1.tar.gz'],
|
||||
'sha256sums': ['3e91d4fc7369d46763894c13f3315133871dd02705072981770c3cf58e8081c6'],
|
||||
'license': 'MIT',
|
||||
'url': 'https://github.com/flightlessmango/MangoHud',
|
||||
'arch': 'x86_64',
|
||||
'makedepends': [
|
||||
'glslang', 'libglvnd', 'lib32-libglvnd', 'meson', 'python-mako', 'vulkan-headers', 'vulkan-icd-loader',
|
||||
'lib32-vulkan-icd-loader', 'libxnvctrl'
|
||||
],
|
||||
'depends': ['mangohud', 'mangohud-common', 'lib32-gcc-libs'],
|
||||
'optdepends': ['lib32-libxnvctrl: support for older NVIDIA GPUs']
|
||||
}
|
||||
|
||||
with open(FILE_DIR + '/resources/mangohud_srcinfo') as f:
|
||||
srcinfo = f.read()
|
||||
|
||||
res = aur.map_srcinfo(srcinfo, 'lib32-mangohud')
|
||||
self.assertEqual(len(expected_fields), len(res), "Expected: {}. Current: {}".format(len(expected_fields), len(res)))
|
||||
|
||||
for key, val in expected_fields.items():
|
||||
self.assertIn(key, res, "key '{}' not in res".format(key))
|
||||
|
||||
if isinstance(val, list):
|
||||
val.sort()
|
||||
|
||||
if isinstance(res[key], list):
|
||||
res[key].sort()
|
||||
|
||||
self.assertEqual(val, res[key], "expected: {}. current: {}".format(val, res[key]))
|
||||
|
||||
def test_map_srcinfo__several_pkgnames__different_pkgname(self):
|
||||
expected_fields = {
|
||||
'pkgbase': 'mangohud',
|
||||
'pkgname': ['lib32-mangohud', 'mangohud', 'mangohud-common'],
|
||||
'pkgver': '0.5.1',
|
||||
'pkgrel': '3',
|
||||
'pkgdesc': [
|
||||
'A Vulkan overlay layer for monitoring FPS, temperatures, CPU/GPU load and more (32-bit)',
|
||||
'Common files for mangohud and lib32-mangohud',
|
||||
'A Vulkan overlay layer for monitoring FPS, temperatures, CPU/GPU load and more',
|
||||
],
|
||||
'source': ['mangohud-0.5.1.tar.gz::https://github.com/flightlessmango/MangoHud/archive/v0.5.1.tar.gz'],
|
||||
'sha256sums': ['3e91d4fc7369d46763894c13f3315133871dd02705072981770c3cf58e8081c6'],
|
||||
'license': 'MIT',
|
||||
'url': 'https://github.com/flightlessmango/MangoHud',
|
||||
'arch': 'x86_64',
|
||||
'makedepends': [
|
||||
'glslang', 'libglvnd', 'lib32-libglvnd', 'meson', 'python-mako', 'vulkan-headers', 'vulkan-icd-loader',
|
||||
'lib32-vulkan-icd-loader', 'libxnvctrl'
|
||||
],
|
||||
'depends': ['mangohud', 'mangohud-common', 'lib32-gcc-libs', 'gcc-libs'],
|
||||
'optdepends': ['lib32-libxnvctrl: support for older NVIDIA GPUs',
|
||||
'bash: mangohud helper script',
|
||||
'libxnvctrl: support for older NVIDIA GPUs']
|
||||
}
|
||||
|
||||
with open(FILE_DIR + '/resources/mangohud_srcinfo') as f:
|
||||
srcinfo = f.read()
|
||||
|
||||
res = aur.map_srcinfo(srcinfo, 'xpto')
|
||||
self.assertEqual(len(expected_fields), len(res), "Expected: {}. Current: {}".format(len(expected_fields), len(res)))
|
||||
|
||||
for key, val in expected_fields.items():
|
||||
self.assertIn(key, res, "key '{}' not in res".format(key))
|
||||
|
||||
if isinstance(val, list):
|
||||
val.sort()
|
||||
|
||||
if isinstance(res[key], list):
|
||||
res[key].sort()
|
||||
|
||||
self.assertEqual(val, res[key], "expected: {}. current: {}".format(val, res[key]))
|
||||
|
||||
def test_map_srcinfo__several_names__pkgname_present__only_specific_fields(self):
|
||||
expected_fields = {
|
||||
'pkgver': '0.5.1',
|
||||
'pkgrel': '3'
|
||||
}
|
||||
|
||||
with open(FILE_DIR + '/resources/mangohud_srcinfo') as f:
|
||||
srcinfo = f.read()
|
||||
|
||||
res = aur.map_srcinfo(srcinfo, 'mangohud-commons', fields={*expected_fields.keys()})
|
||||
|
||||
self.assertEqual(len(expected_fields), len(res), "Expected: {}. Current: {}".format(len(expected_fields), len(res)))
|
||||
|
||||
for key, val in expected_fields.items():
|
||||
self.assertIn(key, res, "key '{}' not in res".format(key))
|
||||
|
||||
if isinstance(val, list):
|
||||
val.sort()
|
||||
res[key].sort()
|
||||
|
||||
self.assertEqual(val, res[key], "expected: {}. current: {}".format(val, res[key]))
|
||||
|
||||
def test_map_srcinfo__several_names__pkgname_not_present__only_specific_fields(self):
|
||||
expected_fields = {
|
||||
'pkgname': ['mangohud', 'lib32-mangohud', 'mangohud-common'],
|
||||
'pkgver': '0.5.1'
|
||||
}
|
||||
|
||||
with open(FILE_DIR + '/resources/mangohud_srcinfo') as f:
|
||||
srcinfo = f.read()
|
||||
|
||||
res = aur.map_srcinfo(srcinfo, 'xpto', fields={*expected_fields.keys()})
|
||||
|
||||
self.assertEqual(len(expected_fields), len(res), "Expected: {}. Current: {}".format(len(expected_fields), len(res)))
|
||||
|
||||
for key, val in expected_fields.items():
|
||||
self.assertIn(key, res, "key '{}' not in res".format(key))
|
||||
|
||||
if isinstance(val, list):
|
||||
val.sort()
|
||||
res[key].sort()
|
||||
|
||||
self.assertEqual(val, res[key], "expected: {}. current: {}".format(val, res[key]))
|
||||
Reference in New Issue
Block a user