class TestRefreshStepProcessMain(unittest.TestCase): def setUp(self): self.conduit = mock.MagicMock() self.step = ContentSourcesRefreshStep(self.conduit) self.source = ContentSource('foo', {'name': 'foo'}) self.report = RefreshReport('foo', 'http://foo.com') self.report.succeeded = True def test_calls_refresh(self): """ Ensure the source's refresh method gets called with the right args. """ with mock.patch.object(self.source, 'refresh', spec_set=True) as mock_refresh: mock_refresh.return_value = [self.report] self.step.process_main(item=self.source) # assert that the real function takes the args we think it takes self.assertEqual(inspect.getargspec(ContentSource.refresh).args, ['self']) # then make sure we pass the right args mock_refresh.assert_called_once_with() def test_report_failed_raises_exception(self): """ Ensure that a pulp coded exception is raised with the correct error code. """ self.report.succeeded = False with mock.patch.object(self.source, 'refresh', spec_set=True) as mock_refresh: mock_refresh.return_value = [self.report] with self.assertRaises(PulpCodedException) as assertion: self.step.process_main(item=self.source) self.assertEqual(assertion.exception.error_code, error_codes.PLP0031)
def test_process_main_one(self, mock_load, mock_process_main): sources = { "A": Mock(id="A", dict=Mock(return_value={"A": 1})), "B": Mock(id="B", dict=Mock(return_value={"B": 2})), "C": Mock(id="C", dict=Mock(return_value={"C": 3})), } mock_load.return_value = sources conduit = ContentSourcesConduit("task_id") step = ContentSourcesRefreshStep(conduit, content_source_id="C") step.process() step.process_main.assert_called_with(item=sources["C"]) self.assertEquals(step.progress_successes, 1)
def test_process_main_one(self, mock_load, mock_process_main): sources = { 'A': Mock(id='A', dict=Mock(return_value={'A': 1})), 'B': Mock(id='B', dict=Mock(return_value={'B': 2})), 'C': Mock(id='C', dict=Mock(return_value={'C': 3})), } mock_load.return_value = sources conduit = ContentSourcesConduit('task_id') step = ContentSourcesRefreshStep(conduit, content_source_id='C') step.process() step.process_main.assert_called_with(item=sources['C']) self.assertEquals(step.progress_successes, 1)
def test_process_main_all(self, mock_load, mock_process_main): sources = { "A": Mock(id="A", dict=Mock(return_value={"A": 1})), "B": Mock(id="B", dict=Mock(return_value={"B": 2})), "C": Mock(id="C", dict=Mock(return_value={"C": 3})), } mock_load.return_value = sources conduit = ContentSourcesConduit("task_id") step = ContentSourcesRefreshStep(conduit) step.process() expected_call_list = [] for item in step.get_iterator(): expected_call_list.append(call(item=item)) self.assertEqual(expected_call_list, step.process_main.call_args_list) self.assertEquals(step.progress_successes, 3)
def test_process_with_unexpected_exception(self, mock_load, mock_process_main): successful_report = Mock() successful_report.dict.return_value = {} successful_report.succeeded = True unsuccessful_report = Mock() unsuccessful_report.dict.return_value = {} unsuccessful_report.succeeded = False sources = { 'A': Mock(id='A', dict=Mock(return_value={'A': 1}), descriptor={'name': 'A'}, refresh=Mock(return_value=[successful_report])), 'B': Mock(id='B', dict=Mock(return_value={'B': 2}), descriptor={'name': 'B'}, refresh=Mock(return_value=[unsuccessful_report])), 'C': Mock(id='C', dict=Mock(return_value={'C': 3}), descriptor={'name': 'C'}, refresh=Mock(return_value=[successful_report])), } mock_load.return_value = sources conduit = ContentSourcesConduit('task_id') step = ContentSourcesRefreshStep(conduit) self.assertRaises(Exception, step.process) self.assertEquals(step.progress_successes, 0) self.assertEqual(step.progress_failures, 1)
def test_process_main_all(self, mock_load, mock_process_main): sources = { 'A': Mock(id='A', dict=Mock(return_value={'A': 1})), 'B': Mock(id='B', dict=Mock(return_value={'B': 2})), 'C': Mock(id='C', dict=Mock(return_value={'C': 3})), } mock_load.return_value = sources conduit = ContentSourcesConduit('task_id') step = ContentSourcesRefreshStep(conduit) step.process() expected_call_list = [] for item in step.get_iterator(): expected_call_list.append(call(item=item)) self.assertEqual(expected_call_list, step.process_main.call_args_list) self.assertEquals(step.progress_successes, 3)
class TestRefreshStepProcessMain(unittest.TestCase): def setUp(self): self.conduit = mock.MagicMock() self.step = ContentSourcesRefreshStep(self.conduit) self.source = ContentSource('foo', {'name': 'foo'}) self.report = RefreshReport('foo', 'http://foo.com') self.report.succeeded = True def test_calls_refresh(self): """ Ensure the source's refresh method gets called with the right args. """ with mock.patch.object(self.source, 'refresh', spec_set=True) as mock_refresh: mock_refresh.return_value = [self.report] self.step.process_main(item=self.source) # assert that the real function takes the args we think it takes self.assertEqual( inspect.getargspec(ContentSource.refresh).args, ['self']) # then make sure we pass the right args mock_refresh.assert_called_once_with() def test_report_failed_raises_exception(self): """ Ensure that a pulp coded exception is raised with the correct error code. """ self.report.succeeded = False with mock.patch.object(self.source, 'refresh', spec_set=True) as mock_refresh: mock_refresh.return_value = [self.report] with self.assertRaises(PulpCodedException) as assertion: self.step.process_main(item=self.source) self.assertEqual(assertion.exception.error_code, error_codes.PLP0031)
def setUp(self): self.conduit = mock.MagicMock() self.step = ContentSourcesRefreshStep(self.conduit) self.source = ContentSource('foo', {'name': 'foo'}) self.report = RefreshReport('foo', 'http://foo.com') self.report.succeeded = True