Beispiel #1
0
 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)
Beispiel #3
0
 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)
Beispiel #5
0
 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()
Beispiel #6
0
 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()
Beispiel #7
0
 def _open(self):
     return Poll.objects(open=True).order_by('-created_at')
Beispiel #8
0
 def _open(self):
     return Poll.objects(open=True).order_by('-created_at')