示例#1
0
 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())
示例#2
0
 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__']
     )
示例#3
0
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
                  })
示例#4
0
 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)
示例#5
0
 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'])
示例#6
0
 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()
示例#7
0
 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)