Example #1
0
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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
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)
Example #8
0
 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
Example #9
0
 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