def test_valid_data_save(self): respondent = Respondent(id=100) respondent.save() comment = Comment.objects.create( respondent=respondent, question_id=1, message='hello world', language='en', ) self.assertEqual(QuantitativeQuestionRating.objects.count(), 0) http_response = self.push({ 'question-ratings': { '1': 4 }, 'comments': { '1': 'hello world', }, 'comment-ratings': { unicode(comment.id): 2 }, 'respondent-data': { 'language': 'tl' } }) self.assertEqual(http_response.status_code, 200) self.assertEqual(QuantitativeQuestionRating.objects.count(), 1) self.assertEqual(Comment.objects.count(), 2) self.assertEqual(CommentRating.objects.count(), 1) self.assertEqual(Respondent.objects.count(), 2) self.assertEqual(Comment.objects.last().message, 'hello world')
def test_respondent_gender_validation(self): for gender in ['', 'M', 'F']: Respondent(gender=gender).full_clean() for gender in ['m', 'f', '?', 'Male', '**']: with self.assertRaises(ValidationError) as context: Respondent(gender=gender).full_clean() errors = dict(context.exception) self.assertEqual(len(errors), 1) self.assertTrue('gender' in errors)
def test_respondent_age_validation(self): for age in [0, 10, 60, 110, 120]: Respondent(age=age).full_clean() for age in [-1, 121, 65535]: with self.assertRaises(ValidationError) as context: Respondent(age=age).full_clean() errors = dict(context.exception) self.assertEqual(len(errors), 1) self.assertTrue('age' in errors)