Exemplo n.º 1
0
 def test_if_fc_is_used(self):
     f = FilterConditionService()
     with self.app.app_context():
         self.assertTrue(
             f._get_referenced_filter_conditions(1).count() == 1)
         self.assertTrue(
             f._get_referenced_filter_conditions(2).count() == 0)
Exemplo n.º 2
0
 def test_mongo_using_desk_filter_in_list(self):
     f = FilterConditionService()
     doc = {'field': 'desk', 'operator': 'in', 'value': '1,2'}
     query = f.get_mongo_query(doc)
     with self.app.app_context():
         docs = superdesk.get_resource_service('archive').\
             get_from_mongo(req=self.req, lookup=query)
         self.assertEqual(2, docs.count())
Exemplo n.º 3
0
 def test_does_match_with_in_filter(self):
     f = FilterConditionService()
     doc = {'field': 'urgency', 'operator': 'in', 'value': '3,4'}
     self.assertFalse(f.does_match(doc, self.articles[0]))
     self.assertFalse(f.does_match(doc, self.articles[1]))
     self.assertTrue(f.does_match(doc, self.articles[2]))
     self.assertTrue(f.does_match(doc, self.articles[3]))
     self.assertFalse(f.does_match(doc, self.articles[4]))
     self.assertFalse(f.does_match(doc, self.articles[5]))
Exemplo n.º 4
0
 def test_does_match_with_like_partial(self):
     f = FilterConditionService()
     doc = {'field': 'headline', 'operator': 'like', 'value': 'tor'}
     self.assertTrue(f.does_match(doc, self.articles[0]))
     self.assertTrue(f.does_match(doc, self.articles[1]))
     self.assertFalse(f.does_match(doc, self.articles[2]))
     self.assertFalse(f.does_match(doc, self.articles[3]))
     self.assertFalse(f.does_match(doc, self.articles[4]))
     self.assertFalse(f.does_match(doc, self.articles[5]))
Exemplo n.º 5
0
 def test_elastic_using_endswith_filter(self):
     f = FilterConditionService()
     doc = {'field': 'headline', 'operator': 'endswith', 'value': 'Que'}
     query = f.get_elastic_query(doc)
     with self.app.app_context():
         self._setup_elastic_args(query, 'keyword')
         docs = superdesk.get_resource_service('archive').get(req=self.req, lookup=None)
         self.assertEqual(1, docs.count())
         self.assertEqual('2', docs[0]['_id'])
Exemplo n.º 6
0
 def test_mongo_using_endswith_filter(self):
     f = FilterConditionService()
     doc = {'field': 'headline', 'operator': 'endswith', 'value': 'Que'}
     query = f.get_mongo_query(doc)
     with self.app.app_context():
         docs = superdesk.get_resource_service('archive').\
             get_from_mongo(req=self.req, lookup=query)
         self.assertEqual(1, docs.count())
         self.assertEqual('2', docs[0]['_id'])
 def test_does_match_with_nin_filter(self):
     f = FilterConditionService()
     doc = {'field': 'urgency', 'operator': 'nin', 'value': '2,3,4'}
     self.assertTrue(f.does_match(doc, self.articles[0]))
     self.assertTrue(f.does_match(doc, self.articles[1]))
     self.assertFalse(f.does_match(doc, self.articles[2]))
     self.assertFalse(f.does_match(doc, self.articles[3]))
     self.assertFalse(f.does_match(doc, self.articles[4]))
     self.assertTrue(f.does_match(doc, self.articles[5]))
 def test_does_match_with_notlike_filter(self):
     f = FilterConditionService()
     doc = {'field': 'headline', 'operator': 'notlike', 'value': 'Que'}
     self.assertTrue(f.does_match(doc, self.articles[0]))
     self.assertFalse(f.does_match(doc, self.articles[1]))
     self.assertTrue(f.does_match(doc, self.articles[2]))
     self.assertTrue(f.does_match(doc, self.articles[3]))
     self.assertTrue(f.does_match(doc, self.articles[4]))
     self.assertTrue(f.does_match(doc, self.articles[5]))
Exemplo n.º 9
0
 def test_mongo_using_genre_filter_complete_string(self):
     f = FilterConditionService()
     doc = {'field': 'genre', 'operator': 'in', 'value': 'Sidebar'}
     query = f.get_mongo_query(doc)
     with self.app.app_context():
         docs = superdesk.get_resource_service('archive').\
             get_from_mongo(req=self.req, lookup=query)
         self.assertEqual(1, docs.count())
         self.assertEqual('7', docs[0]['_id'])
Exemplo n.º 10
0
 def test_elastic_using_notlike_filter(self):
     f = FilterConditionService()
     doc = {'field': 'headline', 'operator': 'notlike', 'value': 'que'}
     query = f.get_elastic_query(doc)
     with self.app.app_context():
         self._setup_elastic_args(query, 'not')
         docs = superdesk.get_resource_service('archive').get(req=self.req, lookup=None)
         self.assertEqual(8, docs.count())
         doc_ids = [d['_id'] for d in docs]
         self.assertTrue('2' not in doc_ids)
Exemplo n.º 11
0
 def test_elastic_using_anpa_category_filter_complete_string(self):
     f = FilterConditionService()
     doc = {'field': 'anpa_category', 'operator': 'in', 'value': 'a,i'}
     query = f.get_elastic_query(doc)
     with self.app.app_context():
         self._setup_elastic_args(query)
         docs = superdesk.get_resource_service('archive').get(req=self.req, lookup=None)
         doc_ids = [d['_id'] for d in docs]
         self.assertEqual(1, docs.count())
         self.assertTrue('9' in doc_ids)
Exemplo n.º 12
0
 def test_mongo_using_in_filter(self):
     f = FilterConditionService()
     doc = {'field': 'urgency', 'operator': 'in', 'value': '3,4'}
     query = f.get_mongo_query(doc)
     with self.app.app_context():
         docs = superdesk.get_resource_service('archive').\
             get_from_mongo(req=self.req, lookup=query)
         self.assertEqual(2, docs.count())
         self.assertEqual('3', docs[0]['_id'])
         self.assertEqual('4', docs[1]['_id'])
Exemplo n.º 13
0
 def test_mongo_using_notlike_filter(self):
     f = FilterConditionService()
     doc = {'field': 'headline', 'operator': 'notlike', 'value': 'Que'}
     query = f.get_mongo_query(doc)
     with self.app.app_context():
         docs = superdesk.get_resource_service('archive').\
             get_from_mongo(req=self.req, lookup=query)
         self.assertEqual(8, docs.count())
         doc_ids = [d['_id'] for d in docs]
         self.assertTrue('2' not in doc_ids)
Exemplo n.º 14
0
 def test_elastic_using_in_filter(self):
     f = FilterConditionService()
     doc = {'field': 'urgency', 'operator': 'in', 'value': '3,4'}
     query = f.get_elastic_query(doc)
     with self.app.app_context():
         self._setup_elastic_args(query)
         docs = superdesk.get_resource_service('archive').get(req=self.req, lookup=None)
         doc_ids = [d['_id'] for d in docs]
         self.assertEqual(2, docs.count())
         self.assertTrue('4' in doc_ids)
         self.assertTrue('3' in doc_ids)
Exemplo n.º 15
0
 def test_get_mongo_operator(self):
     f = FilterConditionService()
     self.assertEqual(f._get_mongo_operator('in'), '$in')
     self.assertEqual(f._get_mongo_operator('nin'), '$nin')
     self.assertEqual(f._get_mongo_operator('like'), '$regex')
     self.assertEqual(f._get_mongo_operator('notlike'), '$not')
     self.assertEqual(f._get_mongo_operator('startswith'), '$regex')
     self.assertEqual(f._get_mongo_operator('endswith'), '$regex')
Exemplo n.º 16
0
 def test_are_equal4(self):
     f = FilterConditionService()
     new_doc = {
         'name': 'A',
         'field': 'urgency',
         'operator': 'nin',
         'value': '4,2,3'
     }
     doc = {
         '_id': 1,
         'name': 'B',
         'field': 'urgency',
         'operator': 'nin',
         'value': '2,3'
     }
     self.assertFalse(f._are_equal(new_doc, doc))
Exemplo n.º 17
0
 def test_are_equal3(self):
     f = FilterConditionService()
     new_doc = {
         'name': 'A',
         'field': 'urgency',
         'operator': 'nin',
         'value': 'jump,track'
     }
     doc = {
         '_id': 1,
         'name': 'B',
         'field': 'urgency',
         'operator': 'nin',
         'value': 'tump,jrack'
     }
     self.assertTrue(f._are_equal(new_doc, doc))
Exemplo n.º 18
0
 def test_get_mongo_value(self):
     f = FilterConditionService()
     self.assertEqual(f._get_mongo_value('in', '1,2', 'urgency'), [1, 2])
     self.assertEqual(f._get_mongo_value('nin', '3', 'priority'), ['3'])
     self.assertEqual(f._get_mongo_value('like', 'test', 'headline'), re.compile('.*test.*', re.IGNORECASE))
     self.assertEqual(f._get_mongo_value('notlike', 'test', 'headline'), re.compile('.*test.*', re.IGNORECASE))
     self.assertEqual(f._get_mongo_value('startswith', 'test', 'headline'), re.compile('^test', re.IGNORECASE))
     self.assertEqual(f._get_mongo_value('endswith', 'test', 'headline'), re.compile('.*test', re.IGNORECASE))
Exemplo n.º 19
0
 def test_does_match_with_sms_filter(self):
     f = FilterConditionService()
     doc = {'field': 'sms', 'operator': 'nin', 'value': 'true'}
     self.assertTrue(f.does_match(doc, self.articles[0]))
     self.assertTrue(f.does_match(doc, self.articles[1]))
     self.assertFalse(f.does_match(doc, self.articles[2]))
     self.assertTrue(f.does_match(doc, self.articles[3]))
     self.assertTrue(f.does_match(doc, self.articles[4]))
     self.assertTrue(f.does_match(doc, self.articles[5]))
     self.assertTrue(f.does_match(doc, self.articles[6]))
     self.assertTrue(f.does_match(doc, self.articles[7]))
Exemplo n.º 20
0
 def test_does_match_with_category_filter(self):
     f = FilterConditionService()
     doc = {'field': 'anpa_category', 'operator': 'in', 'value': 'a,i'}
     self.assertFalse(f.does_match(doc, self.articles[0]))
     self.assertFalse(f.does_match(doc, self.articles[1]))
     self.assertFalse(f.does_match(doc, self.articles[2]))
     self.assertFalse(f.does_match(doc, self.articles[3]))
     self.assertFalse(f.does_match(doc, self.articles[4]))
     self.assertFalse(f.does_match(doc, self.articles[5]))
     self.assertFalse(f.does_match(doc, self.articles[6]))
     self.assertFalse(f.does_match(doc, self.articles[7]))
     self.assertTrue(f.does_match(doc, self.articles[8]))
Exemplo n.º 21
0
 def test_does_match_with_startswith_filter(self):
     f = FilterConditionService()
     doc = {'field': 'headline', 'operator': 'startswith', 'value': 'Sto'}
     self.assertTrue(f.does_match(doc, self.articles[0]))
     self.assertFalse(f.does_match(doc, self.articles[1]))
     self.assertFalse(f.does_match(doc, self.articles[2]))
     self.assertFalse(f.does_match(doc, self.articles[3]))
     self.assertFalse(f.does_match(doc, self.articles[4]))
     self.assertFalse(f.does_match(doc, self.articles[5]))
Exemplo n.º 22
0
 def test_does_match_with_in_filter_case_insensitive(self):
     f = FilterConditionService()
     doc = {'field': 'source', 'operator': 'in', 'value': 'aap,reuters'}
     self.assertTrue(f.does_match(doc, {'source': 'AAP'}))
     self.assertTrue(f.does_match(doc, {'source': 'aap'}))
     self.assertTrue(f.does_match(doc, {'source': 'REUTERS'}))
     doc = {'field': 'source', 'operator': 'in', 'value': 'AAP'}
     self.assertTrue(f.does_match(doc, {'source': 'AAP'}))
     self.assertTrue(f.does_match(doc, {'source': 'aap'}))
     self.assertFalse(f.does_match(doc, {'source': 'REUTERS'}))
Exemplo n.º 23
0
def init_app(app):
    endpoint_name = 'filter_conditions'
    service = FilterConditionService(endpoint_name, backend=get_backend())
    FilterConditionResource(endpoint_name, app=app, service=service)

    endpoint_name = 'filter_condition_parameters'
    service = FilterConditionParametersService(endpoint_name,
                                               backend=get_backend())
    FilterConditionParametersResource(endpoint_name, app=app, service=service)

    endpoint_name = 'content_filters'
    service = ContentFilterService(endpoint_name, backend=get_backend())
    ContentFilterResource(endpoint_name, app=app, service=service)

    endpoint_name = 'content_filter_tests'
    service = ContentFilterTestService(endpoint_name,
                                       backend=superdesk.get_backend())
    ContentFilterTestResource(endpoint_name, app=app, service=service)

    superdesk.privilege(name='content_filters',
                        label='Content Filters',
                        description='User can manage content filters')
 def test_if_fc_is_used(self):
     f = FilterConditionService()
     with self.app.app_context():
         self.assertTrue(f._get_referenced_filter_conditions(1).count() == 1)
         self.assertTrue(f._get_referenced_filter_conditions(2).count() == 0)
 def test_are_equal4(self):
     f = FilterConditionService()
     new_doc = {'name': 'A', 'field': 'urgency', 'operator': 'nin', 'value': '4,2,3'}
     doc = {'_id': 1, 'name': 'B', 'field': 'urgency', 'operator': 'nin', 'value': '2,3'}
     self.assertFalse(f._are_equal(new_doc, doc))
 def test_are_equal3(self):
     f = FilterConditionService()
     new_doc = {'name': 'A', 'field': 'urgency', 'operator': 'nin', 'value': 'jump,track'}
     doc = {'_id': 1, 'name': 'B', 'field': 'urgency', 'operator': 'nin', 'value': 'tump,jrack'}
     self.assertTrue(f._are_equal(new_doc, doc))