def test_migration_duplicate_unit(self, mock_modules, mock_dist, mock_association, mock_controller, mock_repo, mock_open): module_foo = Module(name='kung-foo', version='0.1.2', author='kung') module_bar = Module(name='foo', version='0.1.2', author='kung') module_bar.first = Mock() mock_modules.filter.side_effect = ([module_foo], module_bar) module_foo.save = Mock() module_foo.save.side_effect = NotUniqueError() repo_association = model.RepositoryContentUnit( repo_id='test_repo', unit_type_id='puppet_module', unit_id='bar') test_repo = model.Repository(repo_id='test_repo') mock_repo.get_repo_or_missing_resource.return_value = test_repo mock_association.filter.return_value = [repo_association] migration.migrate() module_foo.save.assert_called_once_with() mock_association.filter.assert_called_once_with(unit_id=module_foo.id) mock_modules.filter.assert_called_with(name='foo') mock_controller.disassociate_units.assert_called_once_with( repo_association, [module_foo]) mock_repo.get_repo_or_missing_resource.assert_called_once_with( 'test_repo') mock_controller.rebuild_content_unit_counts.assert_called_once_with( test_repo)
def setUp(self): self.distributor = installdistributor.PuppetModuleInstallDistributor() self.uk1 = {'author': 'puppetlabs', 'name': 'stdlib', 'version': '1.2.0'} self.uk2 = {'author': 'puppetlabs', 'name': 'stdlib', 'version': '1.2.1'} self.units = [ Module(_storage_path='/a/b/x', **self.uk1), Module(_storage_path='/a/b/y', **self.uk2) ]
def setUp(self): self.distributor = installdistributor.PuppetModuleInstallDistributor() self.puppet_dir = '/opt/my/modules/' self.repo = Repository('repo1', '', repo_obj=mock.MagicMock()) self.conduit = RepoPublishConduit('repo1', self.distributor.metadata()['id']) self.uk1 = {'author': 'puppetlabs', 'name': 'stdlib', 'version': '1.2.0'} self.uk2 = {'author': 'puppetlabs', 'name': 'java', 'version': '1.3.1'} self.units = [ Module(_storage_path='/a/b/x', **self.uk1), Module(_storage_path='/a/b/y', **self.uk2) ] self.conduit.get_units = mock.MagicMock(return_value=self.units, spec_set=self.conduit.get_units)
def setUp(self): self.working_dir = tempfile.mkdtemp(prefix='puppet-sync-tests') self.repo = Repository('test-repo', working_dir=self.working_dir) self.conduit = MockConduit() self.config = PluginCallConfiguration({}, { constants.CONFIG_FEED: FEED, }) self.method = SynchronizeWithPuppetForge(self.repo, self.conduit, self.config) self.sample_units = [ Module(author='a1', name='n1', version='1.0'), Module(author='a2', name='n2', version='2.0'), Module(author='a3', name='n3', version='3.0') ]
def test_migration(self, mock_modules, mock_dist, mock_open): module_foo = Module(name='kung-foo', version='0.1.2', author='kung') mock_modules.filter.return_value = [module_foo] module_foo.save = Mock() migration.migrate() module_foo.save.assert_called_once_with() mock_dist.filter.assert_called_once_with(repo_id__in=[], last_publish__ne=None)
def test_duplicate_unit_names(self, mock_find): config = PluginCallConfiguration({}, {constants.CONFIG_INSTALL_PATH: self.puppet_dir}) uk3 = {'author': 'puppetlabs', 'name': 'stdlib', 'version': '1.3.1'} unit3 = Module(_storage_path='/a/b/y', **uk3) self.units.append(unit3) mock_find.return_value = self.units report = self.distributor.publish_repo(self.repo, self.conduit, config) self.assertFalse(report.success_flag) self.assertTrue(isinstance(report.summary, basestring)) self.assertEqual(len(report.details['errors']), 2) self.assertTrue(report.summary.find('duplicate') >= 0)