def test_stats_count(self): team_temp = TeamTemperatureFactory() self.assertEqual(team_temp.stats()['count'], 0) TeamResponseFactory(request=team_temp) self.assertEqual(team_temp.stats()['count'], 1) TeamResponseFactory(request=team_temp) TeamResponseFactory(request=team_temp) self.assertEqual(team_temp.stats()['count'], 3)
def test_stats_word(self): team_temp = TeamTemperatureFactory() self.assertEqual(len(team_temp.stats()['words']), 0) TeamResponseFactory(request=team_temp, word='first') self.assertEqual(len(team_temp.stats()['words']), 1) TeamResponseFactory(request=team_temp, word='second') TeamResponseFactory(request=team_temp, word='third') self.assertEqual(len(team_temp.stats()['words']), 3)
def test_stats_average(self): team_temp = TeamTemperatureFactory() self.assertIsNone(team_temp.stats()['average']['score__avg']) TeamResponseFactory(request=team_temp, score=5) self.assertEqual(team_temp.stats()['average']['score__avg'], 5.0) TeamResponseFactory(request=team_temp, score=7) TeamResponseFactory(request=team_temp, score=6) self.assertEqual(team_temp.stats()['average']['score__avg'], 6.0)
def test_team_temperature(self): teamtemp = TeamTemperatureFactory() self.assertTrue(len(teamtemp.id) > 0) self.assertIsNotNone(teamtemp.creation_date) self.assertIsNotNone(teamtemp.modified_date) self.assertEqual(teamtemp.survey_type, 'TEAMTEMP') self.assertRegexpMatches(str(teamtemp), "%s: %s %s " % ( teamtemp.id, teamtemp.creator.id, re.escape(str(teamtemp.creation_date)))) stats, query_set = teamtemp.stats() self.assertEqual(stats['count'], 0) self.assertIsNone(stats['average']['score__avg']) self.assertEqual(stats['words'].count(), 0) self.assertEqual(query_set.count(), 0)
def test_multiple_responses_for_a_survey(self): teamtemp = TeamTemperatureFactory() response1 = TemperatureResponseFactory(request=teamtemp) response2 = TemperatureResponseFactory(request=teamtemp) response3 = TemperatureResponseFactory(request=teamtemp, word=response2.word) self.assertEqual(teamtemp.temperature_responses.count(), 3) stats, query_set = teamtemp.stats() self.assertEqual(stats['count'], 3) self.assertEqual( stats['average']['score__avg'], old_div(float(response1.score + response2.score + response3.score), 3)) words = [[x['word']] * x['id__count'] for x in stats['words']] flat_words = sorted(itertools.chain(*words)) self.assertEqual( flat_words, sorted([response1.word, response2.word, response3.word])) self.assertEqual(query_set.count(), 3)