478018f6f2
Tool that finds all available rpm files in directory and creates special tree for pungi: # ls /mnt/koji/ i686/ noarch/ x86_64/ Change-Id: Ibcf2d23c46411ad89477058f4d56e07ca117f0d1
106 lines
4.7 KiB
Python
106 lines
4.7 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
|
|
|
|
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_el8.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_el8.0.0+30+832da3a1.noarch.rpm',
|
|
'appstream/Packages/bnd-maven-plugin-3.5.0-4.module_el8.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='libvirt-6.0.0-28.module_el8.3.0+555+a55c8938.i686',
|
|
path=f'{PATH_TO_REPOS}/powertools/Packages/'
|
|
f'libvirt-6.0.0-28.module_el8.3.0+555+a55c8938.i686.rpm'),
|
|
Package(nvra='libgit2-devel-0.26.8-2.el8.x86_64',
|
|
path=f'{PATH_TO_REPOS}/powertools/Packages/'
|
|
f'libgit2-devel-0.26.8-2.el8.x86_64.rpm'),
|
|
Package(nvra='xalan-j2-2.7.1-38.module_el8.0.0+30+832da3a1.noarch',
|
|
path=f'{PATH_TO_REPOS}/powertools/Packages/'
|
|
f'xalan-j2-2.7.1-38.module_el8.0.0+30+832da3a1.noarch.rpm'),
|
|
Package(nvra='bnd-maven-plugin-3.5.0-4.module_el8.0.0+30+832da3a1.noarch',
|
|
path='/path/to/repos/appstream/Packages/'
|
|
'bnd-maven-plugin-3.5.0-4.module_el8.0.0+30+832da3a1.noarch.rpm'),
|
|
Package(nvra='OpenEXR-devel-2.2.0-11.el8.i686',
|
|
path=f'{PATH_TO_REPOS}/appstream/Packages/'
|
|
f'OpenEXR-devel-2.2.0-11.el8.i686.rpm'),
|
|
Package(nvra='mingw-binutils-generic-2.30-1.el8.x86_64',
|
|
path=f'{PATH_TO_REPOS}/appstream/Packages/'
|
|
f'mingw-binutils-generic-2.30-1.el8.x86_64.rpm')],
|
|
search_rpms(PATH_TO_REPOS)
|
|
)
|
|
|
|
def test_copy_rpms(self):
|
|
target_path = Path('/mnt/koji')
|
|
packages = [
|
|
|
|
Package(nvra='libvirt-6.0.0-28.module_el8.3.0+555+a55c8938.i686',
|
|
path=f'{PATH_TO_REPOS}/powertools/Packages/'
|
|
f'libvirt-6.0.0-28.module_el8.3.0+555+a55c8938.i686.rpm'),
|
|
Package(nvra='libgit2-devel-0.26.8-2.el8.x86_64',
|
|
path=f'{PATH_TO_REPOS}/powertools/Packages/'
|
|
f'libgit2-devel-0.26.8-2.el8.x86_64.rpm'),
|
|
Package(nvra='xalan-j2-2.7.1-38.module_el8.0.0+30+832da3a1.noarch',
|
|
path=f'{PATH_TO_REPOS}/powertools/Packages/'
|
|
f'xalan-j2-2.7.1-38.module_el8.0.0+30+832da3a1.noarch.rpm'),
|
|
Package(nvra='bnd-maven-plugin-3.5.0-4.module_el8.0.0+30+832da3a1.noarch',
|
|
path='/path/to/repos/appstream/Packages/'
|
|
'bnd-maven-plugin-3.5.0-4.module_el8.0.0+30+832da3a1.noarch.rpm'),
|
|
Package(nvra='OpenEXR-devel-2.2.0-11.el8.i686',
|
|
path=f'{PATH_TO_REPOS}/appstream/Packages/'
|
|
f'OpenEXR-devel-2.2.0-11.el8.i686.rpm'),
|
|
Package(nvra='mingw-binutils-generic-2.30-1.el8.x86_64',
|
|
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()
|