def _assign_if_is_yesno(self): if self.text.strip() in settings.YES_WORDS or self.text.strip() in settings.NO_WORDS: return Poll.objects(ptype='yesno', open=True).order_by('-created_at').first() elif fuzzy_match_strings(self.text, settings.YES_WORDS) or fuzzy_match_strings(self.text, settings.NO_WORDS): return Poll.objects(ptype='yesno', open=True).order_by('-created_at').first() else: # return None #always asign uninteligibal responses to the last yes/no poll (possibility to distort poll results) return Poll.objects(ptype='yesno', open=True).order_by('-created_at').first()
def test_should_auto_close_old_polls(self): keywords = ['someword', 'otherkey', 'another'] for kw in keywords: self.poll['keyword'] = kw Poll(**self.poll).save() time.sleep(1) self.assertEqual(3, Poll.objects.count()) self.assertEqual(2, Poll.objects(open=True).count()) self.assertEqual(1, Poll.objects(open=False).count()) self.assertEqual(True, Poll.objects(keyword='otherkey').first().open) self.assertEqual(True, Poll.objects(keyword='another').first().open) self.assertEqual(False, Poll.objects(keyword='someword').first().open)
def _assign_if_is_yesno(self): if self.text.strip() in settings.YES_WORDS or self.text.strip( ) in settings.NO_WORDS: return Poll.objects(ptype='yesno', open=True).order_by('-created_at').first() elif fuzzy_match_strings(self.text, settings.YES_WORDS) or fuzzy_match_strings( self.text, settings.NO_WORDS): return Poll.objects(ptype='yesno', open=True).order_by('-created_at').first() else: # return None #always asign uninteligibal responses to the last yes/no poll (possibility to distort poll results) return Poll.objects(ptype='yesno', open=True).order_by('-created_at').first()
def test_save_poll(self): Poll(**self.poll).save() polls = Poll.objects(**self.poll) self.assertEqual(1, polls.count()) poll = polls.first() self.assertIn(self.target_locations[0], poll.target_locations) self.assertIn(self.target_locations[1], poll.target_locations)
def _assign_poll(self): text = self.split_text() if len(text): active_keywords = [poll.keyword for poll in self._open()] if len(active_keywords): for kw in active_keywords: if kw in text: return Poll.objects(keyword=kw).order_by('-created_at').first() else: return self._assign_if_is_yesno()
def _assign_poll(self): text = self.split_text() if len(text): active_keywords = [poll.keyword for poll in self._open()] if len(active_keywords): for kw in active_keywords: if kw in text: return Poll.objects( keyword=kw).order_by('-created_at').first() else: return self._assign_if_is_yesno()
def _open(self): return Poll.objects(open=True).order_by('-created_at')