943fd8e77d
- Script `create extra repo` is fixed - Unittests are fixed
108 lines
2.9 KiB
Python
108 lines
2.9 KiB
Python
# coding=utf-8
|
|
|
|
import os
|
|
from collections import defaultdict
|
|
from unittest import TestCase, mock, main
|
|
|
|
from pungi.scripts.create_packages_json import (
|
|
PackagesGenerator,
|
|
RepoInfo,
|
|
VariantInfo,
|
|
)
|
|
|
|
FOLDER_WITH_TEST_DATA = os.path.join(
|
|
os.path.dirname(
|
|
os.path.abspath(__file__)
|
|
),
|
|
'data/test_create_packages_json/',
|
|
)
|
|
|
|
test_repo_info = RepoInfo(
|
|
path=FOLDER_WITH_TEST_DATA,
|
|
folder='test_repo',
|
|
is_remote=False,
|
|
is_reference=True,
|
|
)
|
|
|
|
test_repo_info_2 = RepoInfo(
|
|
path=FOLDER_WITH_TEST_DATA,
|
|
folder='test_repo_2',
|
|
is_remote=False,
|
|
is_reference=True,
|
|
)
|
|
variant_info_1 = VariantInfo(
|
|
name='TestRepo',
|
|
arch='x86_64',
|
|
repos=[test_repo_info]
|
|
)
|
|
variant_info_2 = VariantInfo(
|
|
name='TestRepo2',
|
|
arch='x86_64',
|
|
repos=[test_repo_info_2]
|
|
)
|
|
|
|
|
|
class TestPackagesJson(TestCase):
|
|
def test_01_get_remote_file_content(self):
|
|
"""
|
|
Test the getting of content from a remote file
|
|
"""
|
|
request_object = mock.Mock()
|
|
request_object.raise_for_status = lambda: True
|
|
request_object.content = b'TestContent'
|
|
with mock.patch(
|
|
'pungi.scripts.create_packages_json.requests.get',
|
|
return_value=request_object,
|
|
) as mock_requests_get, mock.patch(
|
|
'pungi.scripts.create_packages_json.tempfile.NamedTemporaryFile',
|
|
) as mock_tempfile:
|
|
mock_tempfile.return_value.__enter__.return_value.name = 'tmpfile'
|
|
file_name = PackagesGenerator.get_remote_file_content(
|
|
file_url='fakeurl')
|
|
mock_requests_get.assert_called_once_with(url='fakeurl')
|
|
mock_tempfile.assert_called_once_with(delete=False)
|
|
mock_tempfile.return_value.__enter__().\
|
|
write.assert_called_once_with(b'TestContent')
|
|
self.assertEqual(
|
|
file_name,
|
|
'tmpfile',
|
|
)
|
|
|
|
def test_02_generate_additional_packages(self):
|
|
pg = PackagesGenerator(
|
|
variants=[
|
|
variant_info_1,
|
|
variant_info_2,
|
|
],
|
|
excluded_packages=['zziplib-utils'],
|
|
included_packages=['vim-file*'],
|
|
)
|
|
test_packages = defaultdict(
|
|
lambda: defaultdict(
|
|
lambda: defaultdict(
|
|
list,
|
|
)
|
|
)
|
|
)
|
|
test_packages['TestRepo']['x86_64']['zziplib'] = \
|
|
[
|
|
'zziplib.i686',
|
|
'zziplib.x86_64',
|
|
]
|
|
test_packages['TestRepo2']['x86_64']['vim'] = \
|
|
[
|
|
'vim-X11.i686',
|
|
'vim-common.i686',
|
|
'vim-enhanced.i686',
|
|
'vim-filesystem.noarch',
|
|
]
|
|
result = pg.generate_packages_json()
|
|
self.assertEqual(
|
|
test_packages,
|
|
result,
|
|
)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|