Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • smasch/scheduling-system
1 result
Show changes
# coding=utf-8
from django.contrib import auth as django_auth
from django.test import Client
from django.test import TestCase
from django.urls import reverse
......@@ -14,11 +15,28 @@ class TestLoginView(TestCase):
password = 'top_secret'
username = user.username
login_url = reverse('web.views.login')
self.assertFalse(django_auth.get_user(self.client).is_authenticated())
response = self.client.post(login_url, data={'username': username, 'password': password}, follow=True)
self.assertEqual(200, response.status_code)
self.assertTrue(django_auth.get_user(self.client).is_authenticated())
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)
def test_login_failed(self):
self.client = Client()
user = create_user()
username = user.username
login_url = reverse('web.views.login')
response = self.client.post(login_url, data={'username': username, 'password': 'wrong_password'}, follow=False)
self.assertEqual(302, response.status_code)
self.assertEqual('/login?error=login_failed', response.url)
self.assertFalse(django_auth.get_user(self.client).is_authenticated())
def test_logout(self):
self.test_login()
self.client.get(reverse('web.views.logout'))
self.assertFalse(django_auth.get_user(self.client).is_authenticated())
import datetime
from django.contrib.auth.models import User
from django.test import TestCase, RequestFactory
from functions import create_appointment, create_location, create_worker, create_appointment_type
from functions import create_subject
from functions import create_visit
......@@ -21,16 +18,11 @@ from web.views.notifications import \
get_today_midnight_date, \
get_unfinished_appointments, \
get_unfinished_appointments_count, \
get_unfinished_visits, get_active_visits_with_missing_appointments
get_unfinished_visits
from . import LoggedInTestCase
class NotificationViewTests(TestCase):
def setUp(self):
# Every test needs access to the request factory.
self.factory = RequestFactory()
self.user = User.objects.create_user(
username='piotr', email='jacob@bla', password='top_secret')
class NotificationViewTests(LoggedInTestCase):
def test_get_exceeded_visit_notifications_count(self):
original_notification = get_visits_without_appointments_count(self.user)
......@@ -85,7 +77,7 @@ class NotificationViewTests(TestCase):
appointment = create_appointment(visit)
appointment.appointment_types.add(appointment_type)
appointment.status=Appointment.APPOINTMENT_STATUS_FINISHED
appointment.status = Appointment.APPOINTMENT_STATUS_FINISHED
appointment.save()
notification = get_visits_with_missing_appointments_count(self.user)
......
# coding=utf-8
from datetime import datetime
from django.contrib.auth.models import User
from django.test import Client
from django.test import TestCase
from django.urls import reverse
__author__ = 'Valentin Grouès'
from . import LoggedInTestCase
__author__ = 'Valentin Grouès'
class TestStatisticsView(TestCase):
def setUp(self):
self.client = Client()
username = 'piotr'
password = 'top_secret'
self.user = User.objects.create_user(
username=username, email='jacob@bla', password=password)
self.client.login(username=username, password=password)
class TestStatisticsView(LoggedInTestCase):
def test_statistics_request(self):
url = reverse('web.views.statistics')
response = self.client.get(url)
......
......@@ -42,7 +42,7 @@ class SubjectsViewTests(TestCase):
def test_render_subject_visit_details(self):
subject = create_subject()
visit = create_visit(subject)
appointment = create_appointment(visit)
create_appointment(visit)
response = self.client.get(reverse('web.views.subject_visit_details', kwargs={'id': subject.id}))
self.assertEqual(response.status_code, 200)
......@@ -75,15 +75,17 @@ class SubjectsViewTests(TestCase):
if value is not None:
form_data[key] = value
form_data["screening_number"] = "X-";
form_data["country"] = "Luxembourg";
form_data["first_name"] = "John";
form_data["last_name"] = "Doe";
form_data["sex"] = SEX_CHOICES_MALE;
form_data["type"] = SUBJECT_TYPE_CHOICES_CONTROL;
form_data["default_location"] = get_test_location().id;
form_data["screening_number"] = "X-"
form_data["country"] = "Luxembourg"
form_data["first_name"] = "John"
form_data["last_name"] = "Doe"
form_data["sex"] = SEX_CHOICES_MALE
form_data["type"] = SUBJECT_TYPE_CHOICES_CONTROL
form_data["default_location"] = get_test_location().id
response = self.client.post(reverse('web.views.subject_add'), data=form_data)
self.assertEqual(response.status_code, 302)
response = self.client.get(response.url)
self.assertContains(response, "Subject created")
subject = Subject.objects.all()[0]
self.assertEqual("X-001", subject.screening_number)
......
import datetime
from django.test import Client
from django.test import TestCase
from django.urls import reverse
from functions import \
create_appointment, \
create_appointment_type, \
create_subject, \
create_visit, \
create_user
from functions import create_subject, create_visit, create_appointment, create_appointment_type
from web.forms import VisitDetailForm, VisitAddForm
from web.models import Subject, Visit
from web.models import Visit
from web.views.notifications import get_today_midnight_date
from . import LoggedInTestCase
class VisitViewTests(TestCase):
def setUp(self):
username = 'piotr'
password = 'top_secret'
self.client = Client()
self.user = create_user(username, password)
self.client.login(username=username, password=password)
class VisitViewTests(LoggedInTestCase):
def test_visit_details_request(self):
visit = create_visit()
create_appointment(visit)
......@@ -47,7 +33,7 @@ class VisitViewTests(TestCase):
response = self.client.post(
reverse('web.views.visit_details', kwargs={'id': visit.id}), data=form_data)
self.assertEqual(response.status_code, 200)
self.assertFalse("error" in response.content)
self.assertNotContains(response, "error")
def test_render_add_visit(self):
subject = create_subject()
......@@ -133,6 +119,5 @@ class VisitViewTests(TestCase):
visit = create_visit()
visit.datetime_begin = get_today_midnight_date() + datetime.timedelta(days=-10)
visit.save()
response = self.client.get(reverse("web.views.unfinished_visits"))
self.assertEqual(response.status_code, 200)
......@@ -20,6 +20,11 @@ from django.conf.urls import url
from web import views
urlpatterns = [
####################
# APPOINTMENTS #
####################
url(r'^appointments$', views.appointment.appointments, name='web.views.appointments'),
url(r'^appointments/unfinished$', views.appointment.unfinished_appointments,
name='web.views.unfinished_appointments'),
......@@ -29,6 +34,10 @@ urlpatterns = [
url(r'^appointments/add/general$', views.appointment.appointment_add, name='web.views.appointment_add_general'),
url(r'^appointments/edit/(?P<id>\d+)$', views.appointment.appointment_edit, name='web.views.appointment_edit'),
####################
# VISITS #
####################
url(r'^visits$', views.visit.visits, name='web.views.visits'),
url(r'^visits/exceeded$', views.visit.exceeded_visits, name='web.views.exceeded_visits'),
url(r'^visits/unfinished$', views.visit.unfinished_visits, name='web.views.unfinished_visits'),
......@@ -43,6 +52,10 @@ urlpatterns = [
url(r'^visits/add/(?P<subject_id>\d+)$', views.visit.visit_add, name='web.views.visit_add'),
url(r'^visit/mark/(?P<id>\d+)/(?P<as_what>[A-z]+)$', views.visit.visit_mark, name='web.views.visit_mark'),
####################
# SUBJECTS #
####################
url(r'^subjects$', views.subject.subjects, name='web.views.subjects'),
url(r'^subjects/no_visit$', views.subject.subject_no_visits, name='web.views.subject_no_visits'),
url(r'^subjects/equire_contact$', views.subject.subject_require_contact, name='web.views.subject_require_contact'),
......@@ -51,6 +64,16 @@ urlpatterns = [
name='web.views.subject_visit_details'),
url(r'^subjects/edit/(?P<id>\d+)$', views.subject.subject_edit, name='web.views.subject_edit'),
####################
# CONTACTS #
####################
url(r'^subjects/(?P<subject_id>\d+)/contacts/add$', views.contact_attempt.contact_add, name='web.views.contact_add'),
####################
# DOCTORS #
####################
url(r'^doctors$', views.doctor.doctors, name='web.views.doctors'),
url(r'^doctors/add$', views.doctor.doctor_add, name='web.views.doctor_add'),
url(r'^doctors/details/(?P<doctor_id>\d+)$', views.doctor.doctor_details, name='web.views.doctor_details'),
......@@ -61,6 +84,10 @@ urlpatterns = [
views.doctor.doctor_availability_delete,
name='web.views.doctor_availability_delete'),
####################
# EQUIPMENT #
####################
url(r'^equipment_and_rooms$', views.equipment.equipment_and_rooms, name='web.views.equipment_and_rooms'),
url(r'^equipment_and_rooms/eqdef$', views.equipment.equipment_def, name='web.views.equipment_def'),
url(r'^equipment_and_rooms/kit_requests$', views.kit.kit_requests, name='web.views.kit_requests'),
......@@ -69,12 +96,29 @@ urlpatterns = [
url(r'^equipment_and_rooms/kit_requests/(?P<start_date>[\w-]+)/(?P<end_date>[\w-]+)/$',
views.kit.kit_requests_send_mail, name='web.views.kit_requests_send_mail'),
####################
# MAIL #
####################
url(r'^mail_templates$', views.mails.mail_templates, name='web.views.mail_templates'),
####################
# STATISTICS #
####################
url(r'^statistics$', views.statistics.statistics, name='web.views.statistics'),
####################
# EXPORT #
####################
url(r'^export$', views.export.export, name='web.views.export'),
url(r'^export/(?P<type>[A-z]+)$', views.export.export_to_csv2, name='web.views.export_to_csv2'),
####################
# AUTH #
####################
url(r'^login$', views.auth.login, name='web.views.login'),
url(r'^logout$', views.auth.logout, name='web.views.logout'),
......
......@@ -60,3 +60,4 @@ import kit
import mails
import statistics
import export
import contact_attempt
from django.shortcuts import redirect, get_object_or_404
from . import wrap_response
from ..forms import ContactAttemptForm
from ..models import Subject
def contact_add(request, subject_id):
subject = get_object_or_404(Subject, id=subject_id)
if request.method == 'POST':
form = ContactAttemptForm(request.POST, user=request.user, subject=subject)
form.instance.subject_id = subject_id
if form.is_valid():
form.save()
return redirect('web.views.subject_edit', id=subject_id)
else:
form = ContactAttemptForm(user=request.user, subject=subject)
return wrap_response(request, 'contact_attempt/add.html',
{'form': form, 'subject_id': subject_id})
......@@ -3,7 +3,7 @@ from django.shortcuts import redirect, get_object_or_404
from . import wrap_response
from ..forms import WorkerAddForm, WorkerEditForm, WorkerDetailForm
from ..models import Worker, Avaibility
from ..models import Worker, Availability
def doctors(request):
......@@ -47,7 +47,7 @@ def doctor_details(request, doctor_id):
def doctor_availability(request, doctor_id):
avall = Avaibility.objects.filter(person=doctor_id)
avall = Availability.objects.filter(person=doctor_id)
avmon = avall.filter(day_number=1)
avtue = avall.filter(day_number=2)
......@@ -72,7 +72,7 @@ def doctor_availability(request, doctor_id):
def doctor_availability_delete(request, doctor_id, availability_id):
availibility = Avaibility.objects.filter(id=availability_id)
availibility = Availability.objects.filter(id=availability_id)
if len(availibility) > 0:
availibility.delete()
return redirect(doctoravail, id=doctor_id) # FIXME doctoravail doesn't exist
# coding=utf-8
from django.contrib import messages
from django.shortcuts import redirect, get_object_or_404
from notifications import get_subjects_with_no_visit, get_subjects_with_reminder
......@@ -22,7 +22,8 @@ def subject_add(request):
form = SubjectAddForm(request.POST, request.FILES, user=request.user)
if form.is_valid():
form.save()
return redirect('web.views.subjects')
messages.add_message(request, messages.SUCCESS, 'Subject created')
return redirect('web.views.subject_edit', id=form.instance.id)
else:
worker = Worker.get_by_user(request.user)
form = SubjectAddForm(user=request.user, initial={'screening_number': get_prefix_screening_number(worker)})
......@@ -50,6 +51,7 @@ def subject_require_contact(request):
def subject_edit(request, id):
the_subject = get_object_or_404(Subject, id=id)
contact_attempts = the_subject.contactattempt_set.order_by('-datetime_when').all()
was_dead = the_subject.dead
was_resigned = the_subject.resigned
if request.method == 'POST':
......@@ -68,7 +70,8 @@ def subject_edit(request, id):
return wrap_response(request, 'subjects/edit.html', {
'form': form,
'subject': the_subject
'subject': the_subject,
'contact_attempts': contact_attempts
})
......