def test_refresh_canceled(self, fake_urls): url = 'http://xyz.com' urls = ['url-1', 'url-2'] fake_urls.__get__ = Mock(return_value=urls) canceled = Mock() canceled.isSet = Mock(return_value=True) conduit = Mock() cataloger = Mock() source = ContentSource('s-1', {constants.BASE_URL: url}) source.get_conduit = Mock(return_value=conduit) source.get_cataloger = Mock(return_value=cataloger) # test report = source.refresh(canceled) # validation self.assertEqual(canceled.isSet.call_count, 1) self.assertEqual(conduit.reset.call_count, 0) self.assertEqual(cataloger.refresh.call_count, 0) self.assertEqual(report, [])
def test_refresh_raised(self, fake_urls): url = 'http://xyz.com' urls = ['url-1', 'url-2'] fake_urls.__get__ = Mock(return_value=urls) canceled = Mock() canceled.isSet = Mock(return_value=False) conduit = Mock() cataloger = Mock() cataloger.refresh.side_effect = ValueError('just failed') source = ContentSource('s-1', {constants.BASE_URL: url}) source.get_conduit = Mock(return_value=conduit) source.get_cataloger = Mock(return_value=cataloger) # test report = source.refresh(canceled) # validation self.assertEqual(canceled.isSet.call_count, len(urls)) self.assertEqual(conduit.reset.call_count, len(urls)) self.assertEqual(cataloger.refresh.call_count, len(urls)) n = 0 for _url in source.urls: cataloger.refresh.assert_any(conduit, source.descriptor, _url) self.assertEqual(report[n].source_id, source.id) self.assertEqual(report[n].url, _url) self.assertFalse(report[n].succeeded) self.assertEqual(report[n].errors, ['just failed']) self.assertEqual(report[n].added_count, 0) self.assertEqual(report[n].deleted_count, 0) n += 1
def test_forced_refresh(self, fake_manager, fake_load): sources = {} for n in range(3): s = ContentSource('s-%d' % n, {}) s.refresh = Mock() sources[s.id] = s fake_manager().has_entries.return_value = True fake_load.return_value = sources # test container = ContentContainer('') container.refresh(force=True) # validation for s in sources.values(): s.refresh.assert_called_with()
def test_refresh_canceled(self, fake_load): sources = {} for n in range(3): s = ContentSource('s-%d' % n, {}) s.refresh = Mock() sources[s.id] = s fake_load.return_value = sources # test canceled = FakeEvent() canceled.set() container = ContentContainer('') container.refresh(canceled, force=True) # validation for s in sources.values(): self.assertFalse(s.refresh.called)
def test_refresh(self, fake_manager, fake_load): sources = {} for n in range(3): s = ContentSource('s-%d' % n, {}) s.refresh = Mock(return_value=[n]) s.get_downloader = Mock() sources[s.id] = s fake_manager().has_entries.return_value = False fake_load.return_value = sources # test container = ContentContainer('') report = container.refresh() # validation for s in sources.values(): s.refresh.assert_called_with() self.assertEqual(sorted(report), [0, 1, 2])
def test_refresh_raised(self, fake_manager, fake_load): sources = {} for n in range(3): s = ContentSource('s-%d' % n, {}) s.refresh = Mock(side_effect=ValueError('must be int')) s.get_downloader = Mock() sources[s.id] = s fake_manager().has_entries.return_value = False fake_load.return_value = sources # test container = ContentContainer('') report = container.refresh() # validation for s in sources.values(): s.refresh.assert_called_with() for r in report: r.errors = ['must be int']
def test_refresh(self, fake_urls): url = 'http://xyz.com' urls = ['url-1', 'url-2'] fake_urls.__get__ = Mock(return_value=urls) conduit = Mock() cataloger = Mock() cataloger.refresh.side_effect = FakeRefresh() source = ContentSource('s-1', {constants.BASE_URL: url}) source.get_conduit = Mock(return_value=conduit) source.get_cataloger = Mock(return_value=cataloger) # test report = source.refresh() # validation self.assertEqual(conduit.reset.call_count, len(urls)) self.assertEqual(cataloger.refresh.call_count, len(urls)) n = 0 added = 10 deleted = 1 for _url in source.urls: cataloger.refresh.assert_any(conduit, source.descriptor, _url) self.assertEqual(report[n].source_id, source.id) self.assertEqual(report[n].url, _url) self.assertTrue(report[n].succeeded) self.assertEqual(report[n].errors, []) self.assertEqual(report[n].added_count, added) self.assertEqual(report[n].deleted_count, deleted) added += 10 deleted += 1 n += 1