152 lines
6.0 KiB
Python
152 lines
6.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
import os
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
from pyfakefs.fake_filesystem_unittest import TestCase
|
|
|
|
from pungi.scripts.gather_rpms import search_rpms, copy_rpms, Package
|
|
from productmd.common import parse_nvra
|
|
|
|
PATH_TO_REPOS = '/path/to/repos'
|
|
MODULES_YAML_GZ = 'modules.yaml.gz'
|
|
|
|
|
|
class TestGatherRpms(TestCase):
|
|
maxDiff = None
|
|
|
|
FILES_TO_CREATE = [
|
|
'powertools/Packages/libvirt-6.0.0-28.module_el'
|
|
'8.3.0+555+a55c8938.i686.rpm',
|
|
'powertools/Packages/libgit2-devel-0.26.8-2.el8.x86_64.rpm',
|
|
'powertools/Packages/xalan-j2-2.7.1-38.module_el'
|
|
'8.0.0+30+832da3a1.noarch.rpm',
|
|
'appstream/Packages/bnd-maven-plugin-3.5.0-4.module_el'
|
|
'8.0.0+30+832da3a1.noarch.rpm',
|
|
'appstream/Packages/OpenEXR-devel-2.2.0-11.el8.i686.rpm',
|
|
'appstream/Packages/mingw-binutils-generic-2.30-1.el8.x86_64.rpm',
|
|
'appstream/Packages/somenonrpm',
|
|
]
|
|
|
|
def setUp(self):
|
|
self.setUpPyfakefs()
|
|
|
|
os.makedirs(PATH_TO_REPOS)
|
|
|
|
for filepath in self.FILES_TO_CREATE:
|
|
os.makedirs(
|
|
os.path.join(PATH_TO_REPOS, os.path.dirname(filepath)),
|
|
exist_ok=True,
|
|
)
|
|
open(os.path.join(PATH_TO_REPOS, filepath), 'w').close()
|
|
|
|
def test_gather_rpms(self):
|
|
self.assertEqual(
|
|
[Package(nvra=parse_nvra('libvirt-6.0.0-28.module_'
|
|
'el8.3.0+555+a55c8938.i686'),
|
|
path=Path(
|
|
f'{PATH_TO_REPOS}/powertools/Packages/'
|
|
f'libvirt-6.0.0-28.module_el'
|
|
f'8.3.0+555+a55c8938.i686.rpm'
|
|
)),
|
|
Package(nvra=parse_nvra('libgit2-devel-0.26.8-2.el8.x86_64'),
|
|
path=Path(
|
|
f'{PATH_TO_REPOS}/powertools/Packages/'
|
|
f'libgit2-devel-0.26.8-2.el8.x86_64.rpm'
|
|
)),
|
|
Package(nvra=parse_nvra('xalan-j2-2.7.1-38.module_el'
|
|
'8.0.0+30+832da3a1.noarch'),
|
|
path=Path(
|
|
f'{PATH_TO_REPOS}/powertools/Packages/'
|
|
f'xalan-j2-2.7.1-38.module_el'
|
|
f'8.0.0+30+832da3a1.noarch.rpm'
|
|
)),
|
|
Package(nvra=parse_nvra('bnd-maven-plugin-3.5.0-4.module_el'
|
|
'8.0.0+30+832da3a1.noarch'),
|
|
path=Path(
|
|
'/path/to/repos/appstream/Packages/'
|
|
'bnd-maven-plugin-3.5.0-4.module_el'
|
|
'8.0.0+30+832da3a1.noarch.rpm'
|
|
)),
|
|
Package(nvra=parse_nvra('OpenEXR-devel-2.2.0-11.el8.i686'),
|
|
path=Path(
|
|
f'{PATH_TO_REPOS}/appstream/Packages/'
|
|
f'OpenEXR-devel-2.2.0-11.el8.i686.rpm'
|
|
)),
|
|
Package(nvra=parse_nvra('mingw-binutils-generic-'
|
|
'2.30-1.el8.x86_64'),
|
|
path=Path(
|
|
f'{PATH_TO_REPOS}/appstream/Packages/'
|
|
f'mingw-binutils-generic-2.30-1.el8.x86_64.rpm'
|
|
))
|
|
],
|
|
search_rpms(Path(PATH_TO_REPOS))
|
|
)
|
|
|
|
def test_copy_rpms(self):
|
|
target_path = Path('/mnt/koji')
|
|
packages = [
|
|
|
|
Package(nvra=parse_nvra('libvirt-6.0.0-28.module_'
|
|
'el8.3.0+555+a55c8938.i686'),
|
|
path=Path(
|
|
f'{PATH_TO_REPOS}/powertools/Packages/'
|
|
f'libvirt-6.0.0-28.module_el'
|
|
f'8.3.0+555+a55c8938.i686.rpm'
|
|
)),
|
|
Package(nvra=parse_nvra('libgit2-devel-0.26.8-2.el8.x86_64'),
|
|
path=Path(
|
|
f'{PATH_TO_REPOS}/powertools/Packages/'
|
|
f'libgit2-devel-0.26.8-2.el8.x86_64.rpm'
|
|
)),
|
|
Package(nvra=parse_nvra('xalan-j2-2.7.1-38.module_'
|
|
'el8.0.0+30+832da3a1.noarch'),
|
|
path=Path(
|
|
f'{PATH_TO_REPOS}/powertools/Packages/'
|
|
f'xalan-j2-2.7.1-38.module_el'
|
|
f'8.0.0+30+832da3a1.noarch.rpm'
|
|
)),
|
|
Package(nvra=parse_nvra('bnd-maven-plugin-3.5.0-4.module_el'
|
|
'8.0.0+30+832da3a1.noarch'),
|
|
path=Path(
|
|
'/path/to/repos/appstream/Packages/'
|
|
'bnd-maven-plugin-3.5.0-4.module_el'
|
|
'8.0.0+30+832da3a1.noarch.rpm'
|
|
)),
|
|
Package(nvra=parse_nvra('OpenEXR-devel-2.2.0-11.el8.i686'),
|
|
path=Path(
|
|
f'{PATH_TO_REPOS}/appstream/Packages/'
|
|
f'OpenEXR-devel-2.2.0-11.el8.i686.rpm'
|
|
)),
|
|
Package(nvra=parse_nvra('mingw-binutils-generic-'
|
|
'2.30-1.el8.x86_64'),
|
|
path=Path(
|
|
f'{PATH_TO_REPOS}/appstream/Packages/'
|
|
f'mingw-binutils-generic-2.30-1.el8.x86_64.rpm'
|
|
))
|
|
]
|
|
copy_rpms(packages, target_path, [])
|
|
|
|
self.assertCountEqual([
|
|
'xalan-j2-2.7.1-38.module_el8.0.0+30+832da3a1.noarch.rpm',
|
|
'bnd-maven-plugin-3.5.0-4.module_el8.0.0+30+832da3a1.noarch.rpm'
|
|
], os.listdir(target_path / 'noarch'))
|
|
|
|
self.assertCountEqual([
|
|
'libgit2-devel-0.26.8-2.el8.x86_64.rpm',
|
|
'mingw-binutils-generic-2.30-1.el8.x86_64.rpm'
|
|
], os.listdir(target_path / 'x86_64'))
|
|
|
|
self.assertCountEqual([
|
|
'libvirt-6.0.0-28.module_el8.3.0+555+a55c8938.i686.rpm',
|
|
'OpenEXR-devel-2.2.0-11.el8.i686.rpm'
|
|
], os.listdir(target_path / 'i686'))
|
|
|
|
self.assertCountEqual([
|
|
'i686', 'x86_64', 'noarch'
|
|
], os.listdir(target_path))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|