def test_get_total_ignore_filter(self): step = publish_step.UnitPublishStep("foo", ['bar', 'baz']) step.association_filters = {'foo': 'bar'} step.parent = Mock() step.parent.repo.content_unit_counts.get.return_value = 1 total = step._get_total(ignore_filter=True) self.assertEquals(2, total)
def test_process_step_no_units(self, mock_get_units): self.publisher.repo.content_unit_counts = {'FOO_TYPE': 0} mock_method = Mock() mock_get_units.return_value = [] step = publish_step.UnitPublishStep('foo_step', 'FOO_TYPE') step.parent = self.publisher step.process_unit = mock_method step.process() self.assertEquals(step.state, reporting_constants.STATE_COMPLETE) self.assertFalse(mock_method.called)
def test_get_with_association_filter(self, mock_manager_factory): step = publish_step.UnitPublishStep("foo", ['bar', 'baz']) step.association_filters = {'foo': 'bar'} find_by_criteria = mock_manager_factory.repo_unit_association_query_manager.return_value.\ find_by_criteria find_by_criteria.return_value.count.return_value = 5 total = step._get_total() criteria_object = find_by_criteria.call_args[0][0] compare_dict(criteria_object.filters, {'foo': 'bar', 'unit_type_id': {'$in': ['bar', 'baz']}}) self.assertEquals(5, total)
def test_process_step_cancelled_mid_unit_processing(self, mock_get_units): self.publisher.repo.content_unit_counts = {'FOO_TYPE': 2} mock_get_units.return_value = ['cancel', 'bar_unit'] step = publish_step.UnitPublishStep('foo_step', 'FOO_TYPE') self.publisher.add_child(step) step.process_unit = self._step_canceler step.process() self.assertEquals(step.state, reporting_constants.STATE_CANCELLED) self.assertEquals(step.progress_successes, 1) self.assertEquals(step.progress_failures, 0) self.assertEquals(step.total_units, 2)
def test_process_step_single_unit_exception(self, mock_get_units): self.publisher.repo.content_unit_counts = {'FOO_TYPE': 1} mock_method = Mock(side_effect=Exception()) mock_get_units.return_value = ['mock_unit'] step = publish_step.UnitPublishStep('foo_step', 'FOO_TYPE') step.parent = self.publisher step.process_unit = mock_method self.assertRaises(Exception, step.process) self.assertEquals(step.state, reporting_constants.STATE_FAILED) self.assertEquals(step.progress_successes, 0) self.assertEquals(step.progress_failures, 1) self.assertEquals(step.total_units, 1) mock_method.assert_called_once_with('mock_unit')
def test_process_step_single_unit(self, mock_get_units): self.publisher.repo.content_unit_counts = {'FOO_TYPE': 1} mock_method = Mock() mock_get_units.return_value = ['mock_unit'] step = publish_step.UnitPublishStep('foo_step', 'FOO_TYPE') step.parent = self.publisher step.process_unit = mock_method step.process() self.assertEquals(step.state, reporting_constants.STATE_COMPLETE) self.assertEquals(step.progress_successes, 1) self.assertEquals(step.progress_failures, 0) self.assertEquals(step.total_units, 1) mock_method.assert_called_once_with('mock_unit')
def test_process_unit_with_no_work(self): # Run the blank process unit to ensure no exceptions are raised step = publish_step.UnitPublishStep("foo", ['bar', 'baz']) step.process_main('foo')
def test_get_total_for_none(self): step = publish_step.UnitPublishStep("foo", ['bar', 'baz']) step.parent = Mock() step.parent.repo.content_unit_counts.get.return_value = 0 total = step._get_total() self.assertEquals(0, total)
def test_is_skipped_dict_not_skipped(self): step = publish_step.UnitPublishStep("foo", 'bar') step.config = PluginCallConfiguration(None, None) self.assertFalse(step.is_skipped())
def test_is_skipped_dict(self): step = publish_step.UnitPublishStep("foo", 'bar') step.config = PluginCallConfiguration(None, {'skip': {'bar': True, 'baz': True}}) self.assertTrue(step.is_skipped())
def test_process_step_skip_units(self): self.publisher.config = PluginCallConfiguration(None, {'skip': ['FOO']}) step = publish_step.UnitPublishStep('foo_step', 'FOO') step.parent = self.publisher step.process() self.assertEquals(step.state, reporting_constants.STATE_SKIPPED)