Exemple #1
0
    def test_make_new_survey(self):
        chains = mommy.make(Chain, _quantity=4)

        choices = []
        for chain in chains:
            seed_message = mommy.make(Message, chain=chain)
            choices.append(seed_message)

        questions = []
        for seed_message in choices:
            response = mommy.make(Message,
                                  chain=seed_message.chain,
                                  parent=seed_message)
            questions.append(response)

        choices_str = ','.join([str(message.id) for message in choices])
        questions_str = ','.join([str(message.id) for message in questions])

        survey_form = NewSurveyForm({
            'name': 'Test Survey',
            'questions': questions_str,
            'choices': choices_str
        })
        self.assertTrue(survey_form.is_valid())
        survey = survey_form.save()  # should not raise
        self.assertEquals(Survey.objects.count(), 1)

        self.assertEquals(survey.questions.count(), 4)
Exemple #2
0
 def test_questions_must_be_csv_ints(self):
     questions_str = 'a,b,c'
     choices_str = 'd,e,f'
     survey_form = NewSurveyForm({
         'name': 'Str Message Survey',
         'questions': questions_str,
         'choices': choices_str
     })
     self.assertFalse(survey_form.is_valid())
Exemple #3
0
 def test_questions_must_be_actual_messages(self):
     questions_str = '1,2,3'
     choices_str = '4,5,6'
     survey_form = NewSurveyForm({
         'name': 'Bad Survey',
         'questions': questions_str,
         'choices': choices_str
     })
     self.assertFalse(survey_form.is_valid())
Exemple #4
0
    def test_questions_can_contain_spaces(self):
        questions = mommy.make(Message, _quantity=10)
        questions_str = ', '.join([str(message.id) for message in questions])

        choices = mommy.make(Message, _quantity=4)
        choices_str = ',  '.join([str(message.id) for message in choices])

        survey_form = NewSurveyForm({
            'name': 'Spaced Survey',
            'questions': questions_str,
            'choices': choices_str
        })
        self.assertTrue(survey_form.is_valid())
Exemple #5
0
    def create_survey(self, survey_name, from_game):
        game = Game.objects.get(name=from_game)
        chains = game.chain_set.all()

        questions = []
        choices = []

        for chain in chains:
            filled_messages = list(chain.message_set.exclude(audio=''))
            choices.append(filled_messages[0].id)
            questions.append(filled_messages[-1].id)

        questions_str = ','.join(map(str, questions))
        choices_str = ','.join(map(str, choices))

        survey_form = NewSurveyForm({
            'name': survey_name,
            'questions': questions_str,
            'choices': choices_str,
        })
        survey_form.full_clean()
        survey = survey_form.save()
        return survey