def test_fields_missing(self):
        # SETUP
        expected = False
        expected_error_count = 5
        expected_error_message = [u'This field is required.']
        data = {}
        form = BattleForm(data = data)
        # CALL
        actual = form.is_valid()
        # ASSERT
#         print form._errors
        self.assertEqual(expected, actual)
        self.assertEqual(expected_error_count, len(form._errors))
        for field_key, field_error in form._errors.iteritems():
            self.assertEqual(expected_error_message, field_error)
 def test_is_valid(self):
     # SETUP
     expected = True
     data = {
         'attacker': 1,
         'defender': 2,
         'winner': 1,
         'start': timezone.now(),
         'end': timezone.now()
     }
     form = BattleForm(data = data)
     # CALL
     actual = form.is_valid()
     # ASSERT
     print form._errors
     self.assertEqual(expected, actual)
    def test_winner_not_a_player(self):
        # SETUP
        expected = False
        expected_error_count = 1
        data = {
            'attacker': 1,
            'defender': 2,
            'winner': 3,
            'start': '2006-10-25 14:30:40',
            'end': '2006-10-25 14:30:40'
        }
        form = BattleForm(data = data)
        # CALL
        actual = form.is_valid()
        # ASSERT
#         print form._errors
        self.assertEqual(expected, actual)
        self.assertEqual(expected_error_count, len(form._errors))
        self.assertEqual([BattleForm.WINNER_NOT_A_PLAYER], form._errors['winner'])
    def test_not_actual_player_and_ends_too_early(self):
        # SETUP
        expected = False
        expected_error_count = 4
        player_does_not_exist = [u'Select a valid choice. That choice is not one of the available choices.']
        data = {
            'attacker': 11,
            'defender': 12,
            'winner': 1,
            'start': '2006-10-25 14:30:40',
            'end': '2006-10-25 14:30:20'
        }
        form = BattleForm(data = data)
        # CALL
        actual = form.is_valid()
        # ASSERT
#         print form._errors
        self.assertEqual(expected, actual)
        self.assertEqual(expected_error_count, len(form._errors))
        self.assertEqual(player_does_not_exist, form._errors['attacker'])
        self.assertEqual(player_does_not_exist, form._errors['defender'])
        self.assertEqual([BattleForm.PLAYERS_ERROR], form._errors['winner'])
        self.assertEqual([BattleForm.END_IS_BEFORE_START], form._errors['end'])