diff --git a/smash/web/tests/view/test_visit.py b/smash/web/tests/view/test_visit.py
index 8925d6d8fa8b0be13fba8098c288027c02b071b9..5f430b4b07f5a09915c4f42a66c3b29667accd80 100644
--- a/smash/web/tests/view/test_visit.py
+++ b/smash/web/tests/view/test_visit.py
@@ -4,9 +4,11 @@ import logging
 from django.urls import reverse
 
 from web.forms import VisitDetailForm, VisitAddForm
-from web.models import Visit
+from web.models import Visit, MailTemplate
+from web.models.constants import MAIL_TEMPLATE_CONTEXT_VISIT
 from web.tests import LoggedInTestCase
-from web.tests.functions import create_study_subject, create_visit, create_appointment, create_appointment_type
+from web.tests.functions import create_study_subject, create_visit, create_appointment, create_appointment_type, \
+    create_language, get_resource_path
 from web.views.notifications import get_today_midnight_date
 
 logger = logging.getLogger(__name__)
@@ -30,19 +32,41 @@ class VisitViewTests(LoggedInTestCase):
         visit = create_visit()
         create_appointment(visit)
 
-        form_appointment = VisitDetailForm(instance=visit)
+        form_data = self.create_visit_detail_form_data(visit)
+
+        response = self.client.post(reverse('web.views.visit_details', kwargs={'id': visit.id}), data=form_data)
+        self.assertEqual(response.status_code, 200)
+        self.assertNotContains(response, "error")
+
+    @staticmethod
+    def create_visit_detail_form_data(visit):
+        visit_detail_form = VisitDetailForm(instance=visit)
         form_data = {}
-        for key, value in form_appointment.initial.items():
+        for key, value in visit_detail_form.initial.items():
             if value is not None:
                 if isinstance(value, datetime.datetime):
                     form_data[key] = value.strftime("%Y-%m-%d")
                 else:
                     form_data[key] = value
+        return form_data
+
+    def test_render_visit_details_with_mail_templates(self):
+        language = create_language(name="German")
+        template_name = "german_template"
+        template_file = get_resource_path('upcoming_appointment_FR.docx')
+        visit = create_visit()
+        visit.subject.subject.default_written_communication_language = language
+        visit.subject.subject.save()
+
+        MailTemplate(name=template_name, language=language, context=MAIL_TEMPLATE_CONTEXT_VISIT,
+                     template_file=template_file).save()
+
+        form_data = self.create_visit_detail_form_data(visit)
 
-        response = self.client.post(
-            reverse('web.views.visit_details', kwargs={'id': visit.id}), data=form_data)
+        response = self.client.post(reverse('web.views.visit_details', kwargs={'id': visit.id}), data=form_data)
         self.assertEqual(response.status_code, 200)
         self.assertNotContains(response, "error")
+        self.assertTrue(template_name in response.content)
 
     def test_render_add_visit(self):
         study_subject = create_study_subject()
diff --git a/smash/web/views/visit.py b/smash/web/views/visit.py
index 2dd081106633856fa109d72fdb9db7f7ee57a2d6..253270a4afe020cb5efaaccbc9654a4c1882f4b6 100644
--- a/smash/web/views/visit.py
+++ b/smash/web/views/visit.py
@@ -1,4 +1,6 @@
 # coding=utf-8
+import logging
+
 from django.shortcuts import get_object_or_404, redirect
 
 from notifications import get_active_visits_with_missing_appointments, get_unfinished_visits, \
@@ -8,6 +10,8 @@ from . import wrap_response
 from ..forms import VisitDetailForm, StudySubjectDetailForm, VisitAddForm, SubjectDetailForm
 from ..models import Visit, Appointment, StudySubject, MailTemplate
 
+logger = logging.getLogger(__name__)
+
 
 def visits(request):
     visit_list = Visit.objects.order_by('-datetime_begin')