예제 #1
0
 def test_packager_image_without_matches(self, PackagerContext):
     context = PackagerContext.return_value
     packager = Packager(context, {})
     packager.client = MagicMock()
     packager.client.images.return_value = []
     with self.assertRaises(PackagerException):
         packager.image
예제 #2
0
 def test_packager_build_package(self, PackagerContext):
     context = PackagerContext.return_value
     packager = Packager(context, {})
     packager.client = MagicMock()
     packager.client.images.return_value = [{'Id': 0}]
     result_container, result_logs = packager.build_package()
     container = packager.client.create_container.return_value
     packager.client.create_container.assert_called_with(0)
     packager.client.logs.assert_called_with(container, stream=True)
     packager.client.start.assert_called_with(container)
     self.assertEqual(result_container, container)
예제 #3
0
    def test_packager_export_package(self, PackagerContext):
        context = PackagerContext.return_value
        packager = Packager(context, {})
        packager.container = {'Id': 0}
        packager.client = MagicMock()
        packager.client.copy.return_value = self.docker_file
        packager.client.diff.return_value = [
            {'Path': '/foo'},
            {'Path': '/rpmbuild/SOURCES/foo.tar.gz'},
            {'Path': '/rpmbuild/SPECS/foo.spec'},
            {'Path': '/rpmbuild/foo.rpm'},
            {'Path': '/rpmbuild/foo.src.rpm'},
        ]

        with patch('rpmbuild.open', self.open, create=True):
            packager.export_package('/tmp')

        packager.client.copy.assert_any_call(0, '/rpmbuild/foo.rpm')
        packager.client.copy.assert_any_call(0, '/rpmbuild/foo.src.rpm')
        self.open.assert_any_call('/tmp/foo.rpm', 'wb')
        self.open.assert_any_call('/tmp/foo.src.rpm', 'wb')
        exported = self.open()
        exported.write.assert_called_with(self.docker_file_content)
예제 #4
0
 def test_packager_image_without_matches(self, PackagerContext):
     context = PackagerContext.return_value
     packager = Packager(context, {})
     packager.client = MagicMock()
     packager.client.images.return_value = []
     self.assertRaises(PackagerException, lambda: packager.image)
예제 #5
0
 def test_packager_image_with_matches(self, PackagerContext):
     context = PackagerContext.return_value
     packager = Packager(context, {})
     packager.client = MagicMock()
     packager.client.images.return_value = ['foo', 'bar']
     self.assertEqual(packager.image, 'foo')