def test_parse_operating_system_repos(self, mock_init, mock_ub, mock_deb): mock_init.return_value = None data = { 'repos': REPOS_SAMPLE, 'codename': 'trusty' } driver = NailgunBuildImage() driver.data = data mock_deb_expected_calls = [] repos = [] for r in REPOS_SAMPLE: kwargs = { 'name': r['name'], 'uri': r['uri'], 'suite': r['suite'], 'section': r['section'], 'priority': r['priority'] } mock_deb_expected_calls.append(mock.call(**kwargs)) repos.append(objects.DEBRepo(**kwargs)) driver.parse_operating_system() mock_ub_instance = mock_ub.return_value mock_ub_instance.repos = repos mock_ub.assert_called_once_with( repos=repos, packages=NailgunBuildImage.DEFAULT_TRUSTY_PACKAGES) self.assertEqual(mock_deb_expected_calls, mock_deb.call_args_list[:len(REPOS_SAMPLE)]) self.assertEqual(driver.operating_system.repos, repos)
def test_parse_schemes( self, mock_init, mock_imgsch, mock_partsch, mock_fs, mock_img, mock_loop): mock_init.return_value = None data = { 'image_data': IMAGE_DATA_SAMPLE, 'output': '/some/local/path', } driver = NailgunBuildImage() driver.data = data driver.parse_schemes() mock_fs_expected_calls = [] mock_img_expected_calls = [] images = [] fss = [] data_length = len(data['image_data'].keys()) for mount, image in six.iteritems(data['image_data']): filename = os.path.basename(urlsplit(image['uri']).path) img_kwargs = { 'uri': 'file://' + os.path.join(data['output'], filename), 'format': image['format'], 'container': image['container'], 'target_device': None } mock_img_expected_calls.append(mock.call(**img_kwargs)) images.append(objects.Image(**img_kwargs)) fs_kwargs = { 'device': None, 'mount': mount, 'fs_type': image['format'] } mock_fs_expected_calls.append(mock.call(**fs_kwargs)) fss.append(objects.Fs(**fs_kwargs)) if mount == '/': metadata_filename = filename.split('.', 1)[0] + '.yaml' mock_imgsch_instance = mock_imgsch.return_value mock_imgsch_instance.images = images mock_partsch_instance = mock_partsch.return_value mock_partsch_instance.fss = fss self.assertEqual( driver.metadata_uri, 'file://' + os.path.join( data['output'], metadata_filename)) self.assertEqual(mock_img_expected_calls, mock_img.call_args_list[:data_length]) self.assertEqual(mock_fs_expected_calls, mock_fs.call_args_list[:data_length]) self.assertEqual(driver.image_scheme.images, images) self.assertEqual(driver.partition_scheme.fss, fss)
def test_parse_operating_system_packages_given(self, mock_init, mock_ub): mock_init.return_value = None data = { 'repos': [], 'codename': 'trusty', 'packages': ['pack'] } driver = NailgunBuildImage() driver.data = data mock_ub_instance = mock_ub.return_value mock_ub_instance.packages = data['packages'] driver.parse_operating_system() mock_ub.assert_called_once_with(repos=[], packages=data['packages']) self.assertEqual(driver.operating_system.packages, data['packages'])
def test_parse_operating_system_packages_not_given( self, mock_init, mock_ub): mock_init.return_value = None data = { 'repos': [], 'codename': 'trusty' } driver = NailgunBuildImage() driver.data = data mock_ub_instance = mock_ub.return_value mock_ub_instance.packages = NailgunBuildImage.DEFAULT_TRUSTY_PACKAGES driver.parse_operating_system() mock_ub.assert_called_once_with( repos=[], packages=NailgunBuildImage.DEFAULT_TRUSTY_PACKAGES) self.assertEqual(driver.operating_system.packages, NailgunBuildImage.DEFAULT_TRUSTY_PACKAGES)
def test_parse_operating_system_packages_given(self, mock_parse_schemes, mock_ub, mock_proxies): data = {'repos': [], 'codename': 'trusty', 'packages': ['pack']} mock_ub_instance = mock_ub.return_value mock_ub_instance.packages = data['packages'] driver = NailgunBuildImage(data) mock_ub.assert_called_once_with(repos=[], packages=data['packages'], major=14, minor=4, proxies=mock_proxies.return_value) self.assertEqual(driver.operating_system.packages, data['packages'])
def test_parse_operating_system_packages_not_given( self, mock_parse_schemes, mock_ub): data = { 'repos': [], 'codename': 'trusty' } mock_ub_instance = mock_ub.return_value mock_ub_instance.packages = NailgunBuildImage.DEFAULT_TRUSTY_PACKAGES driver = NailgunBuildImage(data) mock_ub.assert_called_once_with( repos=[], packages=NailgunBuildImage.DEFAULT_TRUSTY_PACKAGES, major=14, minor=4) self.assertEqual(driver.operating_system.packages, NailgunBuildImage.DEFAULT_TRUSTY_PACKAGES)
def test_parse_operating_system_error_bad_codename(self, mock_parse_schemes): with self.assertRaises(errors.WrongInputDataError): data = {'codename': 'not-trusty'} NailgunBuildImage(data)
def test_parse_operating_system_error_bad_codename(self, mock_init): mock_init.return_value = None driver = NailgunBuildImage() driver.data = {'codename': 'not-trusty'} self.assertRaises(errors.WrongInputDataError, driver.parse_operating_system)