From 9e0af368eeb1933c681fa601e158cfc814eb227c Mon Sep 17 00:00:00 2001 From: Ralph Bean Date: Jun 08 2016 18:51:38 +0000 Subject: Tests for rpmdiff and check_noarch_rpms. --- diff --git a/tests/test_hub/test_rpmdiff.py b/tests/test_hub/test_rpmdiff.py new file mode 100644 index 0000000..277902f --- /dev/null +++ b/tests/test_hub/test_rpmdiff.py @@ -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' + ])