61 lines
2.1 KiB
Python
61 lines
2.1 KiB
Python
from unittest import mock
|
|
import unittest
|
|
|
|
import koji
|
|
import kojihub
|
|
|
|
FILES = [{'archive_id': 1,
|
|
'name': 'archive1.zip',
|
|
'size': 1024},
|
|
{'archive_id': 1,
|
|
'name': 'archive2.jar',
|
|
'size': 4096}]
|
|
|
|
EMPTY_FILES = []
|
|
|
|
|
|
class TestGetArchiveFile(unittest.TestCase):
|
|
|
|
@mock.patch('kojihub.kojihub.list_archive_files')
|
|
def test_simple(self, list_archive_files):
|
|
list_archive_files.return_value = FILES
|
|
|
|
rv = kojihub.get_archive_file(1, 'archive1.zip')
|
|
list_archive_files.assert_called_with(1, strict=False)
|
|
self.assertEqual(rv, FILES[0])
|
|
|
|
list_archive_files.reset_mock()
|
|
rv = kojihub.get_archive_file(1, 'archive1.zip', strict=True)
|
|
list_archive_files.assert_called_with(1, strict=True)
|
|
self.assertEqual(rv, FILES[0])
|
|
|
|
@mock.patch('kojihub.kojihub.list_archive_files')
|
|
def test_empty_files(self, list_archive_files):
|
|
list_archive_files.return_value = EMPTY_FILES
|
|
|
|
rv = kojihub.get_archive_file(1, 'archive1.zip')
|
|
list_archive_files.assert_called_with(1, strict=False)
|
|
self.assertIsNone(rv)
|
|
|
|
list_archive_files.reset_mock()
|
|
list_archive_files.side_effect = koji.GenericError('error message')
|
|
|
|
with self.assertRaises(koji.GenericError) as cm:
|
|
kojihub.get_archive_file(1, 'archive1.zip', strict=True)
|
|
list_archive_files.assert_called_with(1, strict=True)
|
|
self.assertEqual(cm.exception.args[0], 'error message')
|
|
|
|
@mock.patch('kojihub.kojihub.list_archive_files')
|
|
def test_non_existing_file(self, list_archive_files):
|
|
list_archive_files.return_value = FILES
|
|
|
|
rv = kojihub.get_archive_file(1, 'archive3.xml')
|
|
list_archive_files.assert_called_with(1, strict=False)
|
|
self.assertEqual(rv, None)
|
|
|
|
list_archive_files.reset_mock()
|
|
|
|
with self.assertRaises(koji.GenericError) as cm:
|
|
kojihub.get_archive_file(1, 'archive3.xml', strict=True)
|
|
list_archive_files.assert_called_with(1, strict=True)
|
|
self.assertEqual(cm.exception.args[0], 'No such file: archive3.xml in archive#1')
|