simplify profile edition and test it

This commit is contained in:
Martin Pépin 2017-02-12 18:46:22 +01:00
parent 0420839b20
commit 1d7499d3b2
2 changed files with 22 additions and 8 deletions

View file

@ -65,12 +65,27 @@ class SimpleTest(TestCase):
class TestProfile(TestCase): class TestProfile(TestCase):
@patch('kfet.signals.messages') @patch('kfet.signals.messages')
def test_profile(self, mock_messages): def test_profile(self, mock_messages):
# Test that the root user can log in
User.objects.create_superuser('root', 'foo@bar.com', 'root') User.objects.create_superuser('root', 'foo@bar.com', 'root')
c = Client() c = Client()
c.login(username='root', password='root') c.login(username='root', password='root')
response = c.get('/') response = c.get('/')
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
# Test the profile edition
post_data = {
"first_name": "foo",
"last_name": "bar",
"phone": "0123456789",
"departement": "baz"
}
c.post("/profile", post_data)
user = User.objects.get(username="root")
self.assertEqual(user.first_name, post_data['first_name'])
self.assertEqual(user.last_name, post_data["last_name"])
self.assertEqual(user.profile.phone, post_data["phone"])
self.assertEqual(user.profile.departement, post_data["departement"])
class AuthTest(TestCase): class AuthTest(TestCase):
def test_login(self): def test_login(self):

View file

@ -57,16 +57,15 @@ def logout(request):
@login_required @login_required
def profile(request): def profile(request):
success = False success = False
user = request.user
if request.method == "POST": if request.method == "POST":
user_form = UserForm(request.POST, instance=request.user) user_form = UserForm(request.POST, instance=user)
if user_form.is_valid(): profile_form = ProfileForm(request.POST, instance=user.profile)
user = user_form.save() if (user_form.is_valid() and profile_form.is_valid()):
profile_form = ProfileForm(request.POST, instance=user.profile) user_form.save()
if profile_form.is_valid(): profile_form.save()
profile_form.save() success = True
success = True
else: else:
user = request.user
user_form = UserForm(instance=user) user_form = UserForm(instance=user)
profile_form = ProfileForm(instance=user.profile) profile_form = ProfileForm(instance=user.profile)
return render(request, "gestion/profile.html", return render(request, "gestion/profile.html",