From 6bc1a01a5aee228fa01d4a45959d0b99b38663f1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Valentin=20Grou=C3=A8s?= <valentin.groues@uni.lu>
Date: Wed, 22 Mar 2017 11:16:41 +0100
Subject: [PATCH] solve issue preventing workers with non ascii characters to
 login - #76

---
 smash/web/models.py                |  2 +-
 smash/web/tests/test_view_login.py | 24 ++++++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)
 create mode 100644 smash/web/tests/test_view_login.py

diff --git a/smash/web/models.py b/smash/web/models.py
index 1a4c1f62..4fd299bd 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 00000000..4b5970a9
--- /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)
-- 
GitLab