def before_scenario(context, scenario): config = {} if scenario.status != 'skipped' and 'notesting' in scenario.tags: config['SUPERDESK_TESTING'] = False tests.setup(context=context, config=config, app_factory=get_app) context.headers = [ ('Content-Type', 'application/json'), ('Origin', 'localhost') ] if 'dbauth' in scenario.tags and LDAP_SERVER: scenario.mark_skipped() if 'ldapauth' in scenario.tags and not LDAP_SERVER: scenario.mark_skipped() if scenario.status != 'skipped' and 'auth' in scenario.tags: setup_auth_user(context) if scenario.status != 'skipped' and 'provider' in scenario.tags: setup_providers(context) if scenario.status != 'skipped' and 'vocabulary' in scenario.tags: with context.app.app_context(): cmd = VocabulariesPopulateCommand() filename = os.path.join(os.path.abspath(os.path.dirname("features/steps/fixtures/")), "vocabularies.json") cmd.run(filename) if scenario.status != 'skipped' and 'notification' in scenario.tags: tests.setup_notification(context)
def before_scenario(context, scenario): config = {} if scenario.status != 'skipped' and 'notesting' in scenario.tags: config['SUPERDESK_TESTING'] = False tests.setup(context=context, config=config, app_factory=get_app) context.headers = [('Content-Type', 'application/json'), ('Origin', 'localhost')] if 'dbauth' in scenario.tags and LDAP_SERVER: scenario.mark_skipped() if 'ldapauth' in scenario.tags and not LDAP_SERVER: scenario.mark_skipped() if scenario.status != 'skipped' and 'auth' in scenario.tags: setup_auth_user(context) if scenario.status != 'skipped' and 'provider' in scenario.tags: setup_providers(context) if scenario.status != 'skipped' and 'vocabulary' in scenario.tags: with context.app.app_context(): cmd = VocabulariesPopulateCommand() filename = os.path.join( os.path.abspath(os.path.dirname("features/steps/fixtures/")), "vocabularies.json") cmd.run(filename) if scenario.status != 'skipped' and 'notification' in scenario.tags: tests.setup_notification(context)
def test_populate_vocabularies(self): cmd = VocabulariesPopulateCommand() cmd.run(self.filename) service = get_resource_service("vocabularies") for item in self.json_data: data = service.find_one(_id=item["_id"], req=None) self.assertEqual(data["_id"], item["_id"]) self.assertListEqual(data["items"], item["items"])
def test_populate_vocabularies(self): cmd = VocabulariesPopulateCommand() cmd.run(self.filename) service = get_resource_service("vocabularies") for item in self.json_data: data = service.find_one(_id=item["_id"], req=None) self.assertEqual(data["_id"], item["_id"]) self.assertListEqual(data["items"], item["items"])
def test_get_subscribers_by_filter_condition(self): filter_condition1 = {'field': 'urgency', 'operator': 'in', 'value': '2'} filter_condition2 = {'field': 'urgency', 'operator': 'in', 'value': '1'} filter_condition3 = {'field': 'headline', 'operator': 'like', 'value': 'tor'} filter_condition4 = {'field': 'urgency', 'operator': 'nin', 'value': '3'} with self.app.app_context(): cmd = VocabulariesPopulateCommand() filename = os.path.join(os.path.abspath( os.path.dirname("apps/prepopulate/data_initialization/vocabularies.json")), "vocabularies.json") cmd.run(filename) self.assertTrue(len(self.s._get_subscribers_by_filter_condition(filter_condition1)) == 1) self.assertTrue(len(self.s._get_subscribers_by_filter_condition(filter_condition2)) == 0) self.assertTrue(len(self.s._get_subscribers_by_filter_condition(filter_condition3)) == 2) self.assertTrue(len(self.s._get_subscribers_by_filter_condition(filter_condition4)) == 1)
def test_get_subscribers_by_filter_condition(self): filter_condition1 = { 'field': 'urgency', 'operator': 'in', 'value': '2' } filter_condition2 = { 'field': 'urgency', 'operator': 'in', 'value': '1' } filter_condition3 = { 'field': 'headline', 'operator': 'like', 'value': 'tor' } filter_condition4 = { 'field': 'urgency', 'operator': 'nin', 'value': '3' } with self.app.app_context(): cmd = VocabulariesPopulateCommand() filename = os.path.join( os.path.abspath( os.path.dirname( "apps/prepopulate/data_initialization/vocabularies.json" )), "vocabularies.json") cmd.run(filename) self.assertTrue( len( self.s._get_subscribers_by_filter_condition( filter_condition1)) == 1) self.assertTrue( len( self.s._get_subscribers_by_filter_condition( filter_condition2)) == 0) self.assertTrue( len( self.s._get_subscribers_by_filter_condition( filter_condition3)) == 2) self.assertTrue( len( self.s._get_subscribers_by_filter_condition( filter_condition4)) == 1)
def test_check_similar(self): f = get_resource_service('filter_conditions') filter_condition1 = { 'field': 'urgency', 'operator': 'in', 'value': '2' } filter_condition2 = { 'field': 'urgency', 'operator': 'in', 'value': '3' } filter_condition3 = { 'field': 'urgency', 'operator': 'in', 'value': '1' } filter_condition4 = { 'field': 'urgency', 'operator': 'in', 'value': '5' } filter_condition5 = { 'field': 'urgency', 'operator': 'nin', 'value': '5' } filter_condition6 = { 'field': 'headline', 'operator': 'like', 'value': 'tor' } with self.app.app_context(): cmd = VocabulariesPopulateCommand() filename = os.path.join( os.path.abspath( os.path.dirname( "apps/prepopulate/data_init/vocabularies.json")), "vocabularies.json") cmd.run(filename) self.assertTrue(len(f.check_similar(filter_condition1)) == 2) self.assertTrue(len(f.check_similar(filter_condition2)) == 1) self.assertTrue(len(f.check_similar(filter_condition3)) == 0) self.assertTrue(len(f.check_similar(filter_condition4)) == 3) self.assertTrue(len(f.check_similar(filter_condition5)) == 1) self.assertTrue(len(f.check_similar(filter_condition6)) == 1)
def setup_before_scenario(context, scenario, config, app_factory): if scenario.status != 'skipped' and 'notesting' in scenario.tags: config['SUPERDESK_TESTING'] = False tests.setup(context, config, app_factory, bool(config)) if context.app: # reset to False. context.app.config.update({'NO_TAKES': False}) context.headers = [('Content-Type', 'application/json'), ('Origin', 'localhost')] if 'dbauth' in scenario.tags and LDAP_SERVER: scenario.mark_skipped() if 'ldapauth' in scenario.tags and not LDAP_SERVER: scenario.mark_skipped() if 'amazons3' in scenario.tags and not context.app.config.get( 'AMAZON_CONTAINER_NAME', None): scenario.mark_skipped() if 'alchemy' in scenario.tags and not context.app.config.get( 'KEYWORDS_KEY_API'): scenario.mark_skipped() if 'clean_snapshots' in scenario.tags: tests.use_snapshot.cache.clear() setup_search_provider(context.app) if scenario.status != 'skipped' and 'auth' in scenario.tags: setup_auth_user(context) if scenario.status != 'skipped' and 'provider' in scenario.tags: setup_providers(context) if scenario.status != 'skipped' and 'vocabulary' in scenario.tags: with context.app.app_context(): cmd = VocabulariesPopulateCommand() filename = os.path.join( os.path.abspath(os.path.dirname("features/steps/fixtures/")), "vocabularies.json") cmd.run(filename) if scenario.status != 'skipped' and 'content_type' in scenario.tags: with context.app.app_context(): cmd = VocabulariesPopulateCommand() filename = os.path.join( os.path.abspath(os.path.dirname("features/steps/fixtures/")), "content_types.json") cmd.run(filename) if scenario.status != 'skipped' and 'notification' in scenario.tags: tests.setup_notification(context)
def test_get_subscribers_by_filter_condition(self): filter_condition1 = {"field": "urgency", "operator": "in", "value": "2"} filter_condition2 = {"field": "urgency", "operator": "in", "value": "1"} filter_condition3 = {"field": "headline", "operator": "like", "value": "tor"} filter_condition4 = {"field": "urgency", "operator": "nin", "value": "3"} with self.app.app_context(): cmd = VocabulariesPopulateCommand() filename = os.path.join( os.path.abspath(os.path.dirname("apps/prepopulate/data_initialization/vocabularies.json")), "vocabularies.json", ) cmd.run(filename) self.assertTrue(len(self.s._get_subscribers_by_filter_condition(filter_condition1)) == 1) self.assertTrue(len(self.s._get_subscribers_by_filter_condition(filter_condition2)) == 0) self.assertTrue(len(self.s._get_subscribers_by_filter_condition(filter_condition3)) == 2) self.assertTrue(len(self.s._get_subscribers_by_filter_condition(filter_condition4)) == 1)
def test_check_similar(self): f = superdesk.get_resource_service('filter_conditions') filter_condition1 = {'field': 'urgency', 'operator': 'in', 'value': '2'} filter_condition2 = {'field': 'urgency', 'operator': 'in', 'value': '3'} filter_condition3 = {'field': 'urgency', 'operator': 'in', 'value': '1'} filter_condition4 = {'field': 'urgency', 'operator': 'in', 'value': '5'} filter_condition5 = {'field': 'urgency', 'operator': 'nin', 'value': '5'} filter_condition6 = {'field': 'headline', 'operator': 'like', 'value': 'tor'} with self.app.app_context(): cmd = VocabulariesPopulateCommand() filename = os.path.join(os.path.abspath( os.path.dirname("apps/prepopulate/data_initialization/vocabularies.json")), "vocabularies.json") cmd.run(filename) self.assertTrue(len(f.check_similar(filter_condition1)) == 2) self.assertTrue(len(f.check_similar(filter_condition2)) == 1) self.assertTrue(len(f.check_similar(filter_condition3)) == 0) self.assertTrue(len(f.check_similar(filter_condition4)) == 3) self.assertTrue(len(f.check_similar(filter_condition5)) == 1) self.assertTrue(len(f.check_similar(filter_condition6)) == 1)
def setup_before_scenario(context, scenario, config, app_factory): if scenario.status != 'skipped' and 'notesting' in scenario.tags: config['SUPERDESK_TESTING'] = False # TODO: Temp fix for DATE_FORMAT. This will be removed when superdesk will allow to specify custom test settings. config['DATE_FORMAT'] = DATE_FORMAT tests.setup(context, config, app_factory, bool(config)) context.headers = [('Content-Type', 'application/json'), ('Origin', 'localhost')] if 'amazons3' in scenario.tags and not context.app.config.get( 'AMAZON_CONTAINER_NAME', None): scenario.mark_skipped() if 'alchemy' in scenario.tags and not context.app.config.get( 'KEYWORDS_KEY_API'): scenario.mark_skipped() if 'clean_snapshots' in scenario.tags: tests.use_snapshot.cache.clear() setup_search_provider(context.app) if scenario.status != 'skipped' and 'auth' in scenario.tags: setup_auth_user(context) if scenario.status != 'skipped' and 'consumer_auth' in scenario.tags: setup_auth_consumer(context, test_consumer) if scenario.status != 'skipped' and 'provider' in scenario.tags: setup_providers(context) if scenario.status != 'skipped' and 'vocabulary' in scenario.tags: with context.app.app_context(): cmd = VocabulariesPopulateCommand() filename = os.path.join( os.path.abspath(os.path.dirname("features/steps/fixtures/")), "vocabularies.json") cmd.run(filename) if scenario.status != 'skipped' and 'content_type' in scenario.tags: with context.app.app_context(): cmd = VocabulariesPopulateCommand() filename = os.path.join( os.path.abspath(os.path.dirname("features/steps/fixtures/")), "content_types.json") cmd.run(filename) if scenario.status != 'skipped' and 'notification' in scenario.tags: tests.setup_notification(context)
def setUp(self): super().setUp() # we need to prepopulate vocabularies to get qcodes voc_file = os.path.join(os.path.abspath(os.path.dirname(settings.__file__)), "data/vocabularies.json") VocabulariesPopulateCommand().run(voc_file) # settings are needed in order to get into account NITF_MAPPING for key in dir(settings): if key.isupper(): setattr(config, key, getattr(settings, key)) dirname = os.path.dirname(os.path.realpath(__file__)) fixture = os.path.normpath(os.path.join(dirname, '../fixtures', self.filename)) provider = {'name': 'Test'} with open(fixture) as f: self.nitf = f.read() self.item = NITFFeedParser().parse(etree.fromstring(self.nitf), provider)
def setup_before_scenario(context, scenario, config, app_factory): if scenario.status != 'skipped' and 'notesting' in scenario.tags: config['SUPERDESK_TESTING'] = False tests.setup(context, config, app_factory, bool(config)) context.headers = [ ('Content-Type', 'application/json'), ('Origin', 'localhost') ] if 'dbauth' in scenario.tags and LDAP_SERVER: scenario.mark_skipped() if 'ldapauth' in scenario.tags and not LDAP_SERVER: scenario.mark_skipped() if 'amazons3' in scenario.tags and not context.app.config.get('AMAZON_CONTAINER_NAME', None): scenario.mark_skipped() if 'alchemy' in scenario.tags and not context.app.config.get('KEYWORDS_KEY_API'): scenario.mark_skipped() if 'clean_snapshots' in scenario.tags: tests.use_snapshot.cache.clear() setup_search_provider(context.app) if scenario.status != 'skipped' and 'auth' in scenario.tags: setup_auth_user(context) if scenario.status != 'skipped' and 'provider' in scenario.tags: setup_providers(context) if scenario.status != 'skipped' and 'vocabulary' in scenario.tags: with context.app.app_context(): cmd = VocabulariesPopulateCommand() filename = os.path.join(os.path.abspath(os.path.dirname("features/steps/fixtures/")), "vocabularies.json") cmd.run(filename) if scenario.status != 'skipped' and 'content_type' in scenario.tags: with context.app.app_context(): cmd = VocabulariesPopulateCommand() filename = os.path.join(os.path.abspath(os.path.dirname("features/steps/fixtures/")), "content_types.json") cmd.run(filename) if scenario.status != 'skipped' and 'notification' in scenario.tags: tests.setup_notification(context)
def setup_before_scenario(context, scenario, config, app_factory): if scenario.status != "skipped" and "notesting" in scenario.tags: config["SUPERDESK_TESTING"] = False tests.setup(context, config, app_factory, bool(config)) context.headers = [("Content-Type", "application/json"), ("Origin", "localhost")] if "dbauth" in scenario.tags and LDAP_SERVER: scenario.mark_skipped() if "ldapauth" in scenario.tags and not LDAP_SERVER: scenario.mark_skipped() if "amazons3" in scenario.tags and not context.app.config.get("AMAZON_CONTAINER_NAME", None): scenario.mark_skipped() if "alchemy" in scenario.tags and not context.app.config.get("KEYWORDS_KEY_API"): scenario.mark_skipped() setup_search_provider(context.app) if scenario.status != "skipped" and "auth" in scenario.tags: setup_auth_user(context) if scenario.status != "skipped" and "provider" in scenario.tags: setup_providers(context) if scenario.status != "skipped" and "vocabulary" in scenario.tags: with context.app.app_context(): cmd = VocabulariesPopulateCommand() filename = os.path.join(os.path.abspath(os.path.dirname("features/steps/fixtures/")), "vocabularies.json") cmd.run(filename) if scenario.status != "skipped" and "content_type" in scenario.tags: with context.app.app_context(): cmd = VocabulariesPopulateCommand() filename = os.path.join(os.path.abspath(os.path.dirname("features/steps/fixtures/")), "content_types.json") cmd.run(filename) if scenario.status != "skipped" and "notification" in scenario.tags: tests.setup_notification(context)
def setUp(self): super().setUp() self.service = ArchiveCropService() VocabulariesPopulateCommand().run( os.path.abspath( 'apps/prepopulate/data_initialization/vocabularies.json'))