| |
@@ -0,0 +1,75 @@
|
| |
+ import copy
|
| |
+ import unittest
|
| |
+ import mock
|
| |
+
|
| |
+ import koji
|
| |
+ import kojihub
|
| |
+
|
| |
+
|
| |
+ class TestRPMDiff(unittest.TestCase):
|
| |
+
|
| |
+ @mock.patch('kojihub.subprocess')
|
| |
+ def test_rpmdiff_empty_invocation(self, subprocess):
|
| |
+ process = mock.MagicMock()
|
| |
+ subprocess.Popen.return_value = process
|
| |
+ kojihub.rpmdiff('basepath', [])
|
| |
+ self.assertEquals(len(subprocess.Popen.mock_calls), 0)
|
| |
+ kojihub.rpmdiff('basepath', ['foo'])
|
| |
+ self.assertEquals(len(subprocess.Popen.mock_calls), 0)
|
| |
+
|
| |
+ @mock.patch('kojihub.subprocess')
|
| |
+ def test_rpmdiff_simple_success(self, subprocess):
|
| |
+ process = mock.MagicMock()
|
| |
+ subprocess.Popen.return_value = process
|
| |
+ process.wait.return_value = 0
|
| |
+ kojihub.rpmdiff('basepath', ['foo', 'bar'])
|
| |
+ self.assertEquals(len(subprocess.Popen.call_args_list), 1)
|
| |
+
|
| |
+ @mock.patch('kojihub.subprocess')
|
| |
+ def test_rpmdiff_simple_failure(self, subprocess):
|
| |
+ process = mock.MagicMock()
|
| |
+ subprocess.Popen.return_value = process
|
| |
+ process.wait.return_value = 1
|
| |
+ with self.assertRaises(koji.BuildError):
|
| |
+ kojihub.rpmdiff('basepath', ['foo', 'bar'])
|
| |
+
|
| |
+ class TestCheckNoarchRpms(unittest.TestCase):
|
| |
+ @mock.patch('kojihub.rpmdiff')
|
| |
+ def test_check_noarch_rpms_empty_invocation(self, rpmdiff):
|
| |
+ originals = ['foo', 'bar']
|
| |
+ result = kojihub.check_noarch_rpms('basepath', copy.copy(originals))
|
| |
+ self.assertEquals(result, originals)
|
| |
+
|
| |
+ @mock.patch('kojihub.rpmdiff')
|
| |
+ def test_check_noarch_rpms_simple_invocation(self, rpmdiff):
|
| |
+ originals = ['foo.noarch.rpm', 'bar.noarch.rpm']
|
| |
+ result = kojihub.check_noarch_rpms('basepath', copy.copy(originals))
|
| |
+ self.assertEquals(result, originals)
|
| |
+ self.assertEquals(len(rpmdiff.mock_calls), 2)
|
| |
+
|
| |
+ @mock.patch('kojihub.rpmdiff')
|
| |
+ def test_check_noarch_rpms_with_duplicates(self, rpmdiff):
|
| |
+ originals = [
|
| |
+ 'bar.noarch.rpm',
|
| |
+ 'bar.noarch.rpm',
|
| |
+ 'bar.noarch.rpm',
|
| |
+ ]
|
| |
+ result = kojihub.check_noarch_rpms('basepath', copy.copy(originals))
|
| |
+ self.assertEquals(result, ['bar.noarch.rpm'])
|
| |
+ rpmdiff.assert_called_once_with('basepath', originals)
|
| |
+
|
| |
+ @mock.patch('kojihub.rpmdiff')
|
| |
+ def test_check_noarch_rpms_with_mixed(self, rpmdiff):
|
| |
+ originals = [
|
| |
+ 'foo.x86_64.rpm',
|
| |
+ 'bar.x86_64.rpm',
|
| |
+ 'bar.noarch.rpm',
|
| |
+ 'bar.noarch.rpm',
|
| |
+ ]
|
| |
+ result = kojihub.check_noarch_rpms('basepath', copy.copy(originals))
|
| |
+ self.assertEquals(result, [
|
| |
+ 'foo.x86_64.rpm', 'bar.x86_64.rpm', 'bar.noarch.rpm'
|
| |
+ ])
|
| |
+ rpmdiff.assert_called_once_with('basepath', [
|
| |
+ 'bar.noarch.rpm', 'bar.noarch.rpm'
|
| |
+ ])
|
| |
:tada: