debian-koji/tests/test_hub/test_get_archive.py
Yuming Zhu ca05418fb5 unittest: use unittest.mock instead of mock
because the absence of unittest.mock on python2.7, we still fallback to
mock
2024-10-23 16:35:30 +00:00

76 lines
3.2 KiB
Python

import unittest
from unittest import mock
import koji
import kojihub
class TestGetArchive(unittest.TestCase):
def setUp(self):
self.maxDiff = None
self.list_archives = mock.patch('kojihub.kojihub.list_archives').start()
self.get_maven_archive = mock.patch('kojihub.kojihub.get_maven_archive').start()
self.get_win_archive = mock.patch('kojihub.kojihub.get_win_archive').start()
self.get_image_archive = mock.patch('kojihub.kojihub.get_image_archive').start()
def tearDown(self):
mock.patch.stopall()
def test_get_archive_non_exist_archive_with_strict(self):
archive_id = 1
self.list_archives.return_value = []
with self.assertRaises(koji.GenericError) as cm:
kojihub.get_archive(archive_id, strict=True)
self.assertEqual(f"No such archive: {archive_id}", str(cm.exception))
def test_get_archive_non_exist_archive_without_strict(self):
archive_id = 1
self.list_archives.return_value = []
rv = kojihub.get_archive(archive_id)
self.assertEqual(rv, None)
def test_valid(self):
archive_id = 1
self.list_archives.return_value = [{'archive_id': 1, 'name': 'test-archive-1'}]
self.get_maven_archive.return_value = {'archive_id': 2, 'name': 'test-archive-maven'}
self.get_win_archive.return_value = {'archive_id': 3, 'name': 'test-archive-win'}
self.get_image_archive.return_value = {'archive_id': 5, 'name': 'test-archive-image'}
result = kojihub.get_archive(archive_id)
self.assertEqual({'archive_id': 1, 'name': 'test-archive-image'}, result)
def test_maven_archive_only(self):
archive_id = 1
self.list_archives.return_value = [{}]
self.get_maven_archive.return_value = {'archive_id': 2, 'name': 'test-archive-maven'}
self.get_win_archive.return_value = None
self.get_image_archive.return_value = None
result = kojihub.get_archive(archive_id)
self.assertEqual({'name': 'test-archive-maven'}, result)
def test_win_archive_only(self):
archive_id = 1
self.list_archives.return_value = [{}]
self.get_maven_archive.return_value = None
self.get_win_archive.return_value = {'archive_id': 3, 'name': 'test-archive-win'}
self.get_image_archive.return_value = None
result = kojihub.get_archive(archive_id)
self.assertEqual({'name': 'test-archive-win'}, result)
def test_image_archive_only(self):
archive_id = 1
self.list_archives.return_value = [{}]
self.get_maven_archive.return_value = None
self.get_win_archive.return_value = None
self.get_image_archive.return_value = {'archive_id': 5, 'name': 'test-archive-image'}
result = kojihub.get_archive(archive_id)
self.assertEqual({'name': 'test-archive-image'}, result)
def test_default_archive_only(self):
archive_id = 1
self.list_archives.return_value = [{'archive_id': 1, 'name': 'test-archive-1'}]
self.get_maven_archive.return_value = None
self.get_win_archive.return_value = None
self.get_image_archive.return_value = None
result = kojihub.get_archive(archive_id)
self.assertEqual({'archive_id': 1, 'name': 'test-archive-1'}, result)