def test_invalid_player_returns_form(self): """Test that an invalid player form is returned by the server.""" response = self.client.post(self.player_add_url, self.invalid_player_data) form = response.context['player_form'] expected_form = PlayerForm(self.invalid_player_data) self.assertEqual(form.as_p(), expected_form.as_p())
def test_duplicate_error_message(self): """Test duplicate full name error message.""" PlayerForm(data={'first_name': 'Bob', 'last_name': 'Hope'}).save() form = PlayerForm(data={'first_name': 'Bob', 'last_name': 'Hope'}) form.is_valid() self.assertIn( DUPLICATE_ERROR, form.errors['__all__'] )
def home_page(request): """Render view for home page.""" recent_matches = Match.get_recent_matches(num_matches=20) leaderboard = PlayerRating.objects.all().order_by('-rating') match_form = MatchForm() player_form = PlayerForm() if request.method == 'POST': if 'winner' in request.POST: # only occurs for match submissions match_form = MatchForm(request.POST) if match_form.is_valid(): match_form.save() return redirect('/') elif 'first_name' in request.POST: # only occurs for player submissions player_form = PlayerForm(request.POST) if player_form.is_valid(): player_form.save() return redirect('/') return render(request, 'home.html', context={ 'recent_matches': recent_matches, 'match_form': match_form, 'player_form': player_form, 'leaderboard': leaderboard })
def test_form_fields(self): """ Test that the form has the expected fields. Expected fields include both first and last name. """ form = PlayerForm() expected_fields = ['first_name', 'last_name'] self.assertListEqual(list(form.fields), expected_fields)
def test_capitalized_last_name(self): """Test that the last name is capitalized.""" form = PlayerForm(data={'first_name': 'Bob', 'last_name': 'hope'}) form.is_valid() self.assertEqual('Hope', form.cleaned_data['last_name'])
def test_duplicate_full_name(self): """Test that two full names can't be the same.""" PlayerForm(data={'first_name': 'Bob', 'last_name': 'Hope'}).save() with self.assertRaises(ValueError): PlayerForm(data={'first_name': 'Bob', 'last_name': 'Hope'}).save()
def test_form_saves(self): """Test that player is saved to database using form.""" form = PlayerForm(data={'first_name': 'Bob', 'last_name': 'Hope'}) form.save() self.assertEqual(Player.objects.count(), 1)