Пример #1
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'])
Пример #2
0
 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]))
Пример #3
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'])
Пример #4
0
 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]))
Пример #5
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'])
Пример #6
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(7, docs.count())
         doc_ids = [d['_id'] for d in docs]
         self.assertTrue('2' not in doc_ids)
Пример #7
0
 def test_elastic_using_subject_filter_complete_string(self):
     f = FilterConditionService()
     doc = {'field': 'subject', 'operator': 'in', 'value': '05005003'}
     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('8' in doc_ids)
Пример #8
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'])
Пример #9
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(7, docs.count())
         doc_ids = [d['_id'] for d in docs]
         self.assertTrue('2' not in doc_ids)
Пример #10
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)
Пример #11
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')
Пример #12
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))
Пример #13
0
 def test_does_match_with_genre_filter(self):
     f = FilterConditionService()
     doc = {'field': 'genre', 'operator': 'in', 'value': 'Sidebar'}
     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.assertTrue(f.does_match(doc, self.articles[6]))
     self.assertFalse(f.does_match(doc, self.articles[7]))
Пример #14
0
 def test_does_match_with_subject_filter(self):
     f = FilterConditionService()
     doc = {'field': 'subject', 'operator': 'in', 'value': '05005003'}
     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.assertTrue(f.does_match(doc, self.articles[7]))
 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]))
Пример #16
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)
Пример #17
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))
Пример #18
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))