diff --git a/smash/web/models.py b/smash/web/models.py
index 1a4c1f6214b3cc5726eb78f84e3666e3cadba603..4fd299bd773d79422e0873495ca99fd5cdec4d1e 100644
--- a/smash/web/models.py
+++ b/smash/web/models.py
@@ -408,7 +408,7 @@ class Worker(models.Model):
         else:
             # For get_*_display, see:
             # https://docs.djangoproject.com/en/1.10/topics/db/models/#field-options
-            return str(person[0]), person[0].get_role_display()
+            return unicode(person[0]), person[0].get_role_display()
 
     def __str__(self):
         return "%s %s" % (self.first_name, self.last_name)
diff --git a/smash/web/tests/test_view_login.py b/smash/web/tests/test_view_login.py
new file mode 100644
index 0000000000000000000000000000000000000000..4b5970a9390218cdf8e928a95e197b638bb19898
--- /dev/null
+++ b/smash/web/tests/test_view_login.py
@@ -0,0 +1,24 @@
+# coding=utf-8
+from django.test import Client
+from django.test import TestCase
+from django.urls import reverse
+
+from functions import create_user
+from web.models import Worker
+
+
+class TestLoginView(TestCase):
+    def test_login(self):
+        self.client = Client()
+        user = create_user()
+        password = 'top_secret'
+        username = user.username
+        login_url = reverse('web.views.login')
+        response = self.client.post(login_url, data={'username': username, 'password': password}, follow=True)
+        self.assertEqual(200, response.status_code)
+        worker = Worker.get_by_user(user)
+        self.assertIsNotNone(worker)
+        worker.last_name = 'Grouès'
+        worker.save()
+        response = self.client.post(login_url, data={'username': username, 'password': password}, follow=True)
+        self.assertEqual(200, response.status_code)