#106 Tests for rpmdiff and check_noarch_rpms.
Merged 5 years ago by mikem. Opened 5 years ago by ralph.
ralph/koji test-rpmdiff  into  master

@@ -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'

+         ])

Commit e2a0885 fixes this pull-request

Pull-Request has been merged by mikem@redhat.com

5 years ago
Metadata