def test_get_units(self, find): units = [ Mock(name='0', branch='branch:1', created=0), Mock(name='1', branch='branch:1', created=1), Mock(name='2', branch='branch:2', created=2), Mock(name='3', branch='branch:2', created=3), Mock(name='4', branch='branch:2', created=4), Mock(name='5', branch='branch:3', created=5), ] find.return_value = [reversed(units)] parent = Mock() parent.get_repo.return_value = Mock(id='id-1234') # test main = steps.MainStep() main.parent = parent unit_list = main._get_units() # validation find.assert_called_once_with(parent.get_repo.return_value.id, model.Branch) self.assertEqual(sorted(unit_list), sorted([units[1], units[4], units[5]]))
def test_get_units(self, criteria): units = [ Mock(unit_key={'branch': 'branch:1'}), Mock(unit_key={'branch': 'branch:1'}), Mock(unit_key={'branch': 'branch:2'}), Mock(unit_key={'branch': 'branch:2'}), Mock(unit_key={'branch': 'branch:2'}), Mock(unit_key={'branch': 'branch:3'}), ] conduit = Mock() conduit.get_units.return_value = units parent = Mock() parent.get_conduit.return_value = conduit # test main = steps.MainStep() main.parent = parent _units = main._get_units() # validation criteria.assert_called_once_with(unit_sort=[ ('_id', pulp_constants.SORT_DIRECTION[pulp_constants.SORT_ASCENDING]) ], type_ids=[constants.OSTREE_TYPE_ID]) conduit.get_units.assert_called_once_with(criteria.return_value, as_generator=True) self.assertEqual(sorted(_units), sorted([units[1], units[-2], units[-1]]))
def test_process_main(self, lib, add_ref): units = [ Mock(branch='branch:1', commit='commit:1', storage_path='path:1'), Mock(branch='branch:2', commit='commit:2', storage_path='path:2'), ] repository = Mock() lib.Repository.return_value = repository parent = Mock(publish_dir='/tmp/dir-1234') # test main = steps.MainStep() main._get_units = Mock(return_value=units) main.parent = parent main.process_main() # validation lib.Repository.assert_called_once_with(parent.publish_dir) repository.create.assert_called_once_with() self.assertEqual(repository.pull_local.call_args_list, [((u.storage_path, [u.commit]), {}) for u in units]) self.assertEqual(add_ref.call_args_list, [((parent.publish_dir, u.branch, u.commit), {}) for u in units]) lib.Summary.assert_called_once_with(repository) lib.Summary.return_value.generate.assert_called_once_with()
def test_process_main(self, lib, add_ref): depth = 3 units = [ Mock(branch='branch:1', commit='commit:1', storage_path='path:1'), Mock(branch='branch:2', commit='commit:2', storage_path='path:2'), ] repository = Mock() lib.Repository.return_value = repository config = { constants.DISTRIBUTOR_CONFIG_KEY_DEPTH: depth } parent = Mock(publish_dir='/tmp/dir-1234', config=config) # test main = steps.MainStep() main._get_units = Mock(return_value=units) main.parent = parent main.process_main() # validation lib.Repository.assert_called_once_with(parent.publish_dir) repository.create.assert_called_once_with() self.assertEqual( repository.pull_local.call_args_list, [ call(u.storage_path, [u.commit], depth) for u in units ]) self.assertEqual( add_ref.call_args_list, [ call(parent.publish_dir, u.branch, u.commit) for u in units ]) lib.Summary.assert_called_once_with(repository) lib.Summary.return_value.generate.assert_called_once_with()
def test_process_main_exception(self, lib): units = [ Mock(branch='branch:1', commit='commit:1', storage_path='path:1'), ] repository = Mock() repository.pull_local.side_effect = LibError lib.Repository.return_value = repository lib.LibError = LibError parent = Mock(publish_dir='/tmp/dir-1234', config={}) # test main = steps.MainStep() main._get_units = Mock(return_value=units) main.parent = parent with self.assertRaises(PulpCodedException) as assertion: main.process_main() self.assertEqual(assertion.exception.error_code, errors.OST0006)
def test_process_main(self, lib, add_ref): working_dir = '/tmp/working' units = [ Mock(storage_path='/tmp/path:1', unit_key={ 'branch': 'branch:1', 'commit': 'commit:1' }, metadata='md:1'), Mock(storage_path='/tmp/path:2', unit_key={ 'branch': 'branch:2', 'commit': 'commit:2' }, metadata='md:2'), ] repo = Mock(id='test', working_dir=working_dir) parent = Mock() parent.get_repo.return_value = repo parent.working_dir = working_dir ostree_repo = Mock() lib.Repository.return_value = ostree_repo # test main = steps.MainStep() main._get_units = Mock(return_value=units) main.parent = parent main.process_main() # validation path = os.path.join(working_dir, repo.id) lib.Repository.assert_called_once_with(path) ostree_repo.create.assert_called_once_with() self.assertEqual(ostree_repo.pull_local.call_args_list, [ ((units[0].storage_path, [units[0].unit_key['commit']]), {}), ((units[1].storage_path, [units[1].unit_key['commit']]), {}), ]) self.assertEqual(add_ref.call_args_list, [ ((path, units[0].unit_key['branch'], units[0].unit_key['commit']), {}), ((path, units[1].unit_key['branch'], units[1].unit_key['commit']), {}), ])
def test_init(self): main = steps.MainStep() self.assertEqual(main.step_id, constants.PUBLISH_STEP_MAIN)