def test_dup_terms(self): """ Tests the _handle_phrases method for terms with duplicate words. """ terms = [SearchTerm(term='police'), SearchTerm(term='police officer')] query = ReservoirQuery(searchterms=terms) specs = PipeSpecSheet(accepts_phrases=False) engineer = Engineer(query=query, specs=specs) engineer._handle_phrases() searchterms = engineer.get_searchterms() self.assertEqual(len(searchterms), 3)
def test_for_accepts_phrases(self): """ Tests the _handle_phrases method for an API that accepts phrases. """ terms = [SearchTerm(term='police officer')] query = ReservoirQuery(searchterms=terms) specs = PipeSpecSheet(accepts_phrases=True) engineer = Engineer(query=query, specs=specs) engineer._handle_phrases() searchterms = engineer.get_searchterms() self.assertEqual(len(searchterms), 1) self.assertEqual(searchterms[0].term, 'police officer')
def test_for_multiple_phrases(self): """ Tests the _handle_phrases method for an API that accepts phrases. """ # 'police', 'police oficeer', 'bank robbery' terms = SearchTerm.objects.filter(pk__in=[1, 2, 3]) query = ReservoirQuery(searchterms=terms) specs = PipeSpecSheet(accepts_phrases=False) engineer = Engineer(query=query, specs=specs) engineer._handle_phrases() searchterms = engineer.get_searchterms() # 'police', 'officer', policeoficeer', 'bank', 'robbery', bankrobbery' self.assertEqual(len(searchterms), 6)