class TestProviderService(FeedingService): NAME = 'test' ERRORS = [ProviderError.anpaError(None, None).get_error_description()] def _update(self, provider, update): return []
def test_ingest_provider_closed_when_critical_error_raised(self): provider_name = "AAP" provider = self._get_provider(provider_name) self.assertFalse(provider.get("is_closed")) provider_service = self._get_provider_service(provider) provider_service.provider = provider provider_service.close_provider(provider, ProviderError.anpaError()) provider = self._get_provider(provider_name) self.assertTrue(provider.get("is_closed"))
def test_ingest_provider_closed_when_critical_error_raised(self): provider_name = 'AAP' provider = self._get_provider(provider_name) self.assertFalse(provider.get('is_closed')) provider_service = self._get_provider_service(provider) provider_service.provider = provider provider_service.close_provider(provider, ProviderError.anpaError()) provider = self._get_provider(provider_name) self.assertTrue(provider.get('is_closed'))
def process_anpa_category(item, provider): try: anpa_categories = superdesk.get_resource_service('vocabularies').find_one(req=None, _id='categories') if anpa_categories: for anpa_category in anpa_categories['items']: if anpa_category['is_active'] is True \ and item['anpa-category']['qcode'].lower() == anpa_category['value'].lower(): item['anpa-category'] = {'qcode': item['anpa-category']['qcode'], 'name': anpa_category['name']} break except Exception as ex: raise ProviderError.anpaError(ex, provider)
def test_ingest_provider_closed_when_critical_error_raised(self): provider_name = 'AAP' with self.app.app_context(): provider = self._get_provider(provider_name) self.assertFalse(provider.get('is_closed')) provider_service = self._get_provider_service(provider) provider_service.provider = provider provider_service.close_provider(provider, ProviderError.anpaError()) provider = self._get_provider(provider_name) self.assertTrue(provider.get('is_closed'))
def process_anpa_category(item, provider): try: anpa_categories = superdesk.get_resource_service("vocabularies").find_one(req=None, _id="categories") if anpa_categories: for anpa_category in anpa_categories["items"]: if ( anpa_category["is_active"] is True and item["anpa-category"]["qcode"].lower() == anpa_category["value"].lower() ): item["anpa-category"] = {"qcode": item["anpa-category"]["qcode"], "name": anpa_category["name"]} break except Exception as ex: raise ProviderError.anpaError(ex, provider)
def process_anpa_category(item, provider): try: anpa_categories = superdesk.get_resource_service('vocabularies').find_one(req=None, _id='categories') if anpa_categories: for item_category in item['anpa_category']: for anpa_category in anpa_categories['items']: if anpa_category['is_active'] is True \ and item_category['qcode'].lower() == anpa_category['qcode'].lower(): item_category['name'] = anpa_category['name'] # make the case of the qcode match what we hold in our dictionary item_category['qcode'] = anpa_category['qcode'] break except Exception as ex: raise ProviderError.anpaError(ex, provider)
def process_anpa_category(item, provider): try: anpa_categories = superdesk.get_resource_service( 'vocabularies').find_one(req=None, _id='categories') if anpa_categories: for anpa_category in anpa_categories['items']: if anpa_category['is_active'] is True \ and item['anpa-category']['qcode'].lower() == anpa_category['value'].lower(): item['anpa-category'] = { 'qcode': item['anpa-category']['qcode'], 'name': anpa_category['name'] } break except Exception as ex: raise ProviderError.anpaError(ex, provider)
def process_anpa_category(item, provider): try: anpa_categories = superdesk.get_resource_service('vocabularies').find_one(req=None, _id='categories') if anpa_categories: for item_category in item['anpa_category']: mapped_category = [c for c in anpa_categories['items'] if c['is_active'] is True and item_category['qcode'].lower() == c['qcode'].lower()] # if the category is not known to the system remove it from the item if len(mapped_category) == 0: item['anpa_category'].remove(item_category) else: item_category['name'] = mapped_category[0]['name'] # make the case of the qcode match what we hold in our dictionary item_category['qcode'] = mapped_category[0]['qcode'] except Exception as ex: raise ProviderError.anpaError(ex, provider)
def test_raise_anpaError(self): with assert_raises(ProviderError) as error_context: try: ex = Exception("Testing anpaError") raise ex except Exception: raise ProviderError.anpaError(ex, self.provider) exception = error_context.exception self.assertTrue(exception.code == 2005) self.assertTrue(exception.message == "Anpa category error") self.assertIsNotNone(exception.system_exception) self.assertEqual(exception.system_exception.args[0], "Testing anpaError") self.assertEqual(len(self.mock_logger_handler.messages['error']), 1) self.assertEqual(self.mock_logger_handler.messages['error'][0], "ProviderError Error 2005 - Anpa category error: " "Testing anpaError on channel TestProvider")
def process_anpa_category(item, provider): try: anpa_categories = superdesk.get_resource_service("vocabularies").find_one(req=None, _id="categories") if anpa_categories: for item_category in item["anpa_category"]: mapped_category = [ c for c in anpa_categories["items"] if c["is_active"] is True and item_category["qcode"].lower() == c["qcode"].lower() ] # if the category is not known to the system remove it from the item if len(mapped_category) == 0: item["anpa_category"].remove(item_category) else: item_category["name"] = mapped_category[0]["name"] # make the case of the qcode match what we hold in our dictionary item_category["qcode"] = mapped_category[0]["qcode"] item_category["scheme"] = "categories" except Exception as ex: raise ProviderError.anpaError(ex, provider)
def mock_update(provider): raise ProviderError.anpaError()
from superdesk.errors import SuperdeskApiError, ProviderError from superdesk.io import register_feeding_service, registered_feeding_services from .tests import setup_providers, teardown_providers from superdesk.io.feeding_services import FeedingService from superdesk.io.commands.remove_expired_content import get_expired_items, RemoveExpiredContent from superdesk.celery_task_utils import mark_task_as_not_running, is_task_running from test_factory import SuperdeskTestCase class TestProviderService(FeedingService): def _update(self, provider): return [] register_feeding_service('test', TestProviderService(), [ProviderError.anpaError(None, None).get_error_description()]) class CeleryTaskRaceTest(SuperdeskTestCase): def test_the_second_update_fails_if_already_running(self): provider = {'_id': 'abc', 'name': 'test provider', 'update_schedule': {'minutes': 1}} removed = mark_task_as_not_running(provider['name'], provider['_id']) self.assertFalse(removed) failed_to_mark_as_running = is_task_running(provider['name'], provider['_id'], {'minutes': 1}) self.assertFalse(failed_to_mark_as_running, 'Failed to mark ingest update as running') failed_to_mark_as_running = is_task_running(provider['name'], provider['_id'], {'minutes': 1}) self.assertTrue(failed_to_mark_as_running, 'Ingest update marked as running, possible race condition')
def mock_update(provider, update): raise ProviderError.anpaError()
from superdesk.io import register_feeding_service, registered_feeding_services from .tests import setup_providers, teardown_providers from superdesk.io.feeding_services import FeedingService from superdesk.io.commands.remove_expired_content import get_expired_items, RemoveExpiredContent from superdesk.celery_task_utils import mark_task_as_not_running, is_task_running from test_factory import SuperdeskTestCase class TestProviderService(FeedingService): def _update(self, provider): return [] register_feeding_service( 'test', TestProviderService(), [ProviderError.anpaError(None, None).get_error_description()]) class CeleryTaskRaceTest(SuperdeskTestCase): def test_the_second_update_fails_if_already_running(self): provider = { '_id': 'abc', 'name': 'test provider', 'update_schedule': { 'minutes': 1 } } removed = mark_task_as_not_running(provider['name'], provider['_id']) self.assertFalse(removed) failed_to_mark_as_running = is_task_running(provider['name'],