Skip to content
Snippets Groups Projects
Commit 55b4849a authored by Jacek Lebioda's avatar Jacek Lebioda
Browse files

Tests for rooms and equipment items

parent 58e41eaa
No related branches found
No related tags found
1 merge request!123Resolve "Rooms management page"
...@@ -6,7 +6,7 @@ from django.contrib.auth.models import User ...@@ -6,7 +6,7 @@ from django.contrib.auth.models import User
from web.models import Location, AppointmentType, StudySubject, Worker, Visit, Appointment, ConfigurationItem, \ from web.models import Location, AppointmentType, StudySubject, Worker, Visit, Appointment, ConfigurationItem, \
Language, ContactAttempt, FlyingTeam, Availability, Subject, Study, StudyColumns, StudyNotificationParameters, \ Language, ContactAttempt, FlyingTeam, Availability, Subject, Study, StudyColumns, StudyNotificationParameters, \
VoucherType, VoucherTypePrice, Voucher VoucherType, VoucherTypePrice, Voucher, Room, Item
from web.models.constants import REDCAP_TOKEN_CONFIGURATION_TYPE, REDCAP_BASE_URL_CONFIGURATION_TYPE, \ from web.models.constants import REDCAP_TOKEN_CONFIGURATION_TYPE, REDCAP_BASE_URL_CONFIGURATION_TYPE, \
SEX_CHOICES_MALE, SUBJECT_TYPE_CHOICES_CONTROL, CONTACT_TYPES_PHONE, \ SEX_CHOICES_MALE, SUBJECT_TYPE_CHOICES_CONTROL, CONTACT_TYPES_PHONE, \
MONDAY_AS_DAY_OF_WEEK, COUNTRY_AFGHANISTAN_ID, VOUCHER_STATUS_NEW MONDAY_AS_DAY_OF_WEEK, COUNTRY_AFGHANISTAN_ID, VOUCHER_STATUS_NEW
...@@ -245,6 +245,21 @@ def create_flying_team(place=None): ...@@ -245,6 +245,21 @@ def create_flying_team(place=None):
return result return result
def create_item(name='Test item', is_fixed=False, disposable=False):
item = Item(name=name, is_fixed=is_fixed, disposable=disposable)
item.save()
return item
def create_room(owner='Test owner', city='Test city',
address='Test address', equipment=[],
floor=1, is_vehicle=False, room_number=1):
room = Room(owner=owner, city=city, address=address, equipment=equipment,
floor=floor, is_vehicle=is_vehicle, room_number=room_number)
room.save()
return room
def create_language(name="French", locale="fr_FR"): def create_language(name="French", locale="fr_FR"):
language = Language(name=name, locale=locale) language = Language(name=name, locale=locale)
language.save() language.save()
......
import logging
from django.urls import reverse
from web.tests.functions import create_item
from web.models import Item
from web.tests import LoggedInTestCase
logger = logging.getLogger(__name__)
class EquipmentTests(LoggedInTestCase):
def test_equipment_requests(self):
pages = [
'web.views.equipment',
'web.views.equipment_add',
]
for page in pages:
response = self.client.get(reverse(page))
self.assertEqual(response.status_code, 200)
def test_equipment_edit_request(self):
item = create_item()
page = reverse('web.views.equipment_edit',
kwargs={'equipment_id': str(item.id)})
response = self.client.get(page)
self.assertEqual(response.status_code, 200)
def test_equipment_delete_request(self):
item = create_item()
page = reverse('web.views.equipment_delete',
kwargs={'equipment_id': str(item.id)})
response = self.client.get(page)
self.assertEqual(response.status_code, 200)
def test_equipment_add(self):
page = reverse('web.views.equipment_add')
data = {
'name': 'The mysterious potion',
'disposable': True,
'is_fixed': False,
}
response = self.client.post(page, data)
self.assertEqual(response.status_code, 302)
freshly_created = Item.objects.filter(name=data['name'])
self.assertEqual(len(freshly_created), 1)
def test_equipment_edit(self):
item = create_item()
page = reverse('web.views.equipment_edit',
kwargs={'equipment_id': str(item.id)})
data = {
'name': 'Even more mysterious potion',
'disposable': True,
'is_fixed': True,
}
response = self.client.post(page, data)
self.assertEqual(response.status_code, 302)
freshly_edited = Item.objects.get(id=item.id)
for key in data:
self.assertEqual(getattr(freshly_edited, key, ''), data[key])
def test_equipment_delete(self):
item = create_item()
page = reverse('web.views.equipment_delete',
kwargs={'equipment_id': str(item.id)})
response = self.client.post(page, data)
self.assertEqual(response.status_code, 302)
freshly_deleted = Item.objects.filter(id=item.id)
self.assertEqual(len(freshly_deleted), 0)
import logging
from django.urls import reverse
from web.tests.functions import create_room, create_item
from web.models import Item, Room
from web.tests import LoggedInTestCase
logger = logging.getLogger(__name__)
class RoomsTests(LoggedInTestCase):
def test_rooms_requests(self):
pages = [
'web.views.equipment_and_rooms.rooms',
'web.views.equipment_and_rooms.rooms_add',
]
for page in pages:
response = self.client.get(reverse(page))
self.assertEqual(response.status_code, 200)
def test_rooms_edit_request(self):
room = create_room()
page = reverse('web.views.equipment_and_rooms.rooms_edit',
kwargs={'room_id': str(room.id)})
response = self.client.get(page)
self.assertEqual(response.status_code, 200)
def test_rooms_delete_request(self):
room = create_room()
page = reverse('web.views.equipment_and_rooms.rooms_delete',
kwargs={'room_id': str(room.id)})
response = self.client.get(page)
self.assertEqual(response.status_code, 200)
def test_rooms_add(self):
page = reverse('web.views.equipment_and_rooms.rooms_add')
item = create_item()
data = {
'city': 'Belval',
'address': 'Av. du Swing 123456',
'room_number': 123,
'floor': 456,
'is_vehicle': False,
'owner': 'No one',
'equipment': [item.id]
}
response = self.client.post(page, data)
self.assertEqual(response.status_code, 302)
freshly_created = Room.objects.filter(address=data['address'])
self.assertEqual(len(freshly_created), 1)
def test_rooms_edit(self):
room = create_room()
page = reverse('web.views.equipment_and_rooms.rooms_edit',
kwargs={'room_id': str(room.id)})
data = {
'city': 'Belval2',
'address': 'Av. du Swing ABCDE',
'room_number': 5,
'floor': 8,
'is_vehicle': True,
'owner': 'Everyone',
}
response = self.client.post(page, data)
self.assertEqual(response.status_code, 302)
freshly_edited = Room.objects.get(id=room.id)
for key in data:
self.assertEqual(getattr(freshly_edited, key, ''), data[key])
def test_rooms_delete(self):
room = create_room()
page = reverse('web.views.equipment_and_rooms.rooms_delete',
kwargs={'room_id': str(room.id)})
response = self.client.post(page, data)
self.assertEqual(response.status_code, 302)
freshly_deleted = Room.objects.filter(id=room.id)
self.assertEqual(len(freshly_deleted), 0)
...@@ -122,18 +122,22 @@ urlpatterns = [ ...@@ -122,18 +122,22 @@ urlpatterns = [
#################### ####################
url(r'^equipment_and_rooms$', views.equipment_and_rooms.equipment_and_rooms, name='web.views.equipment_and_rooms'), url(r'^equipment_and_rooms$', views.equipment_and_rooms.equipment_and_rooms, name='web.views.equipment_and_rooms'),
url(r'^equipment_and_rooms/equipment$', views.equipment.equipment, name='web.views.equipment'),
url(r'^equipment_and_rooms/equipment/add$', views.equipment.equipment_add, name='web.views.equipment_add'), url(r'^equipment_and_rooms/equipment/add$', views.equipment.equipment_add, name='web.views.equipment_add'),
url(r'^equipment_and_rooms/equipment/edit/(?P<equipment_id>\d+)$', views.equipment.equipment_edit, name='web.views.equipment_edit'), url(r'^equipment_and_rooms/equipment/edit/(?P<equipment_id>\d+)$', views.equipment.equipment_edit, name='web.views.equipment_edit'),
url(r'^equipment_and_rooms/equipment/delete/(?P<equipment_id>\d+)$', views.equipment.equipment_delete, name='web.views.equipment_delete'), url(r'^equipment_and_rooms/equipment/delete/(?P<equipment_id>\d+)$', views.equipment.equipment_delete, name='web.views.equipment_delete'),
url(r'^equipment_and_rooms/equipment$', views.equipment.equipment, name='web.views.equipment'),
url(r'^equipment_and_rooms/kit_requests$', views.kit.kit_requests, name='web.views.kit_requests'), url(r'^equipment_and_rooms/kit_requests$', views.kit.kit_requests, name='web.views.kit_requests'),
url(r'^equipment_and_rooms/kit_requests/(?P<start_date>[\w-]+)/$', views.kit.kit_requests_send_mail, url(r'^equipment_and_rooms/kit_requests/(?P<start_date>[\w-]+)/$', views.kit.kit_requests_send_mail,
name='web.views.kit_requests_send_mail'), name='web.views.kit_requests_send_mail'),
url(r'^equipment_and_rooms/kit_requests/(?P<start_date>[\w-]+)/(?P<end_date>[\w-]+)/$', 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'), views.kit.kit_requests_send_mail, name='web.views.kit_requests_send_mail'),
url(r'^equipment_and_rooms/flying_teams$', views.flying_teams.flying_teams, name='web.views.equipment_and_rooms.flying_teams'), url(r'^equipment_and_rooms/flying_teams$', views.flying_teams.flying_teams, name='web.views.equipment_and_rooms.flying_teams'),
url(r'^equipment_and_rooms/flying_teams/add$', views.flying_teams.flying_teams_add, name='web.views.equipment_and_rooms.flying_teams_add'), url(r'^equipment_and_rooms/flying_teams/add$', views.flying_teams.flying_teams_add, name='web.views.equipment_and_rooms.flying_teams_add'),
url(r'^equipment_and_rooms/flying_teams/edit/(?P<flying_team_id>\d+)$', views.flying_teams.flying_teams_edit, name='web.views.equipment_and_rooms.flying_teams_edit'), url(r'^equipment_and_rooms/flying_teams/edit/(?P<flying_team_id>\d+)$', views.flying_teams.flying_teams_edit, name='web.views.equipment_and_rooms.flying_teams_edit'),
url(r'^equipment_and_rooms/rooms$', views.rooms.rooms, name='web.views.equipment_and_rooms.rooms'), url(r'^equipment_and_rooms/rooms$', views.rooms.rooms, name='web.views.equipment_and_rooms.rooms'),
url(r'^equipment_and_rooms/rooms/add$', views.rooms.rooms_add, name='web.views.equipment_and_rooms.rooms_add'), url(r'^equipment_and_rooms/rooms/add$', views.rooms.rooms_add, name='web.views.equipment_and_rooms.rooms_add'),
url(r'^equipment_and_rooms/rooms/edit/(?P<room_id>\d+)$', views.rooms.rooms_edit, name='web.views.equipment_and_rooms.rooms_edit'), url(r'^equipment_and_rooms/rooms/edit/(?P<room_id>\d+)$', views.rooms.rooms_edit, name='web.views.equipment_and_rooms.rooms_edit'),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment