Пример #1
0
 def test_get_total_ignore_filter(self):
     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)
Пример #2
0
    def test_get_with_association_filter(self, mock_manager_factory):
        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)
Пример #3
0
    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 = 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)
Пример #4
0
    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 = 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')
Пример #5
0
 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 = 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)
Пример #6
0
    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 = 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')
Пример #7
0
 def test_process_unit_with_no_work(self):
     # Run the blank process unit to ensure no exceptions are raised
     step = UnitPublishStep("foo", ['bar', 'baz'])
     step.process_unit('foo')
Пример #8
0
 def test_get_total_for_none(self):
     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)
Пример #9
0
 def test_is_skipped_dict_not_skipped(self):
     step = UnitPublishStep("foo", 'bar')
     step.config = PluginCallConfiguration(None, None)
     self.assertFalse(step.is_skipped())
Пример #10
0
 def test_is_skipped_dict(self):
     step = UnitPublishStep("foo", 'bar')
     step.config = PluginCallConfiguration(None, {'skip': {'bar': True, 'baz': True}})
     self.assertTrue(step.is_skipped())
Пример #11
0
 def test_process_step_skip_units(self):
     self.publisher.config = PluginCallConfiguration(None, {'skip': ['FOO']})
     step = UnitPublishStep('foo_step', 'FOO')
     step.parent = self.publisher
     step.process()
     self.assertEquals(step.state, reporting_constants.STATE_SKIPPED)
Пример #12
0
 def test_get_with_association_filter(self):
     step = UnitPublishStep("foo", ['bar', 'baz'])
     step.association_filters = {'foo': 'bar'}
     total = step._get_total()
     self.assertEquals(1, total)