mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-06 22:54:16 +02:00
267 lines
11 KiB
Python
267 lines
11 KiB
Python
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]))
|