[live-images] Fix crash when repo_from is not a list
Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
This commit is contained in:
		
							parent
							
								
									98a9e02b1b
								
							
						
					
					
						commit
						6e8970e648
					
				| @ -22,7 +22,7 @@ import pipes | |||||||
| import shutil | import shutil | ||||||
| 
 | 
 | ||||||
| from kobo.threads import ThreadPool, WorkerThread | from kobo.threads import ThreadPool, WorkerThread | ||||||
| from kobo.shortcuts import run, save_to_file | from kobo.shortcuts import run, save_to_file, force_list | ||||||
| from productmd.images import Image | from productmd.images import Image | ||||||
| 
 | 
 | ||||||
| from pungi.wrappers.kojiwrapper import KojiWrapper | from pungi.wrappers.kojiwrapper import KojiWrapper | ||||||
| @ -106,7 +106,7 @@ class LiveImagesPhase(PhaseBase): | |||||||
| 
 | 
 | ||||||
|         # additional repos |         # additional repos | ||||||
|         repos.extend(data.get("additional_repos", [])) |         repos.extend(data.get("additional_repos", [])) | ||||||
|         repos.extend(self._get_extra_repos(arch, variant, data.get('repo_from', []))) |         repos.extend(self._get_extra_repos(arch, variant, force_list(data.get('repo_from', [])))) | ||||||
|         return repos |         return repos | ||||||
| 
 | 
 | ||||||
|     def _get_release(self, image_conf): |     def _get_release(self, image_conf): | ||||||
|  | |||||||
| @ -59,6 +59,49 @@ class TestLiveImagesPhase(PungiTestCase): | |||||||
|                                           compose.variants['Client'], |                                           compose.variants['Client'], | ||||||
|                                           'amd64'))]) |                                           'amd64'))]) | ||||||
| 
 | 
 | ||||||
|  |     @mock.patch('pungi.phases.live_images.ThreadPool') | ||||||
|  |     def test_live_image_build_single_repo_from(self, ThreadPool): | ||||||
|  |         compose = DummyCompose(self.topdir, { | ||||||
|  |             'live_images': [ | ||||||
|  |                 ('^Client$', { | ||||||
|  |                     'amd64': { | ||||||
|  |                         'kickstart': 'test.ks', | ||||||
|  |                         'additional_repos': ['http://example.com/repo/'], | ||||||
|  |                         'repo_from': 'Everything', | ||||||
|  |                         'release': None, | ||||||
|  |                     } | ||||||
|  |                 }) | ||||||
|  |             ], | ||||||
|  |         }) | ||||||
|  | 
 | ||||||
|  |         phase = LiveImagesPhase(compose) | ||||||
|  | 
 | ||||||
|  |         phase.run() | ||||||
|  | 
 | ||||||
|  |         # assert at least one thread was started | ||||||
|  |         self.assertTrue(phase.pool.add.called) | ||||||
|  |         self.maxDiff = None | ||||||
|  |         self.assertItemsEqual(phase.pool.queue_put.mock_calls, | ||||||
|  |                               [mock.call((compose, | ||||||
|  |                                           {'ks_file': 'test.ks', | ||||||
|  |                                            'build_arch': 'amd64', | ||||||
|  |                                            'dest_dir': self.topdir + '/compose/Client/amd64/iso', | ||||||
|  |                                            'scratch': False, | ||||||
|  |                                            'repos': [self.topdir + '/compose/Client/amd64/os', | ||||||
|  |                                                      'http://example.com/repo/', | ||||||
|  |                                                      self.topdir + '/compose/Everything/amd64/os'], | ||||||
|  |                                            'label': '', | ||||||
|  |                                            'name': None, | ||||||
|  |                                            'filename': 'image-name', | ||||||
|  |                                            'version': None, | ||||||
|  |                                            'specfile': None, | ||||||
|  |                                            'sign': False, | ||||||
|  |                                            'type': 'live', | ||||||
|  |                                            'release': '20151203.0', | ||||||
|  |                                            'ksurl': None}, | ||||||
|  |                                           compose.variants['Client'], | ||||||
|  |                                           'amd64'))]) | ||||||
|  | 
 | ||||||
|     @mock.patch('pungi.phases.live_images.ThreadPool') |     @mock.patch('pungi.phases.live_images.ThreadPool') | ||||||
|     def test_live_image_build_without_rename(self, ThreadPool): |     def test_live_image_build_without_rename(self, ThreadPool): | ||||||
|         compose = DummyCompose(self.topdir, { |         compose = DummyCompose(self.topdir, { | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user