diff --git a/smash/web/tests/test_api.py b/smash/web/tests/test_api.py new file mode 100644 index 0000000000000000000000000000000000000000..7772b9a2b8d3466a57fd66f921eae7a47f7968ec --- /dev/null +++ b/smash/web/tests/test_api.py @@ -0,0 +1,136 @@ +# coding=utf-8 +import datetime +import json + +from django.contrib.auth.models import User +from django.test import TestCase +from django.test import Client +from django.urls import reverse + +from web.models import Visit +from web.api_views import cities +from web.tests.functions import create_subject, create_worker, create_appointment_type + +__author__ = 'Piotr Gawron' + + +class TestApi(TestCase): + def setUp(self): + self.subject = create_subject() + self.client = Client() + username = 'piotr' + password = 'top_secret' + self.user = User.objects.create_user( + username=username, email='jacob@bla', password=password) + self.worker = create_worker(self.user) + self.client.login(username=username, password=password) + + def test_cities(self): + city_name = "some city" + + response = self.client.get(reverse('web.api.cities')) + self.assertEqual(response.status_code, 200) + + cities = json.loads(response.content)['cities'] + + self.assertFalse(city_name in cities) + + self.subject.city = city_name + self.subject.save() + + response = self.client.get(reverse('web.api.cities')) + cities = json.loads(response.content)['cities'] + + self.assertTrue(city_name in cities) + + def test_countries(self): + country_name = "some country" + + response = self.client.get(reverse('web.api.countries')) + self.assertEqual(response.status_code, 200) + + countries = json.loads(response.content)['countries'] + + self.assertFalse(country_name in countries) + + self.subject.country = country_name + self.subject.save() + + response = self.client.get(reverse('web.api.countries')) + countries = json.loads(response.content)['countries'] + + self.assertTrue(country_name in countries) + + def test_specializations(self): + specialization_name = "some spec" + + response = self.client.get(reverse('web.api.specializations')) + self.assertEqual(response.status_code, 200) + + specializations = json.loads(response.content)['specializations'] + + self.assertFalse(specialization_name in specializations) + + self.worker.specialization = specialization_name + self.worker.save() + + response = self.client.get(reverse('web.api.specializations')) + specializations = json.loads(response.content)['specializations'] + + self.assertTrue(specialization_name in specializations) + + def test_units(self): + unit_name = "some unit" + + response = self.client.get(reverse('web.api.units')) + self.assertEqual(response.status_code, 200) + + units = json.loads(response.content)['units'] + + self.assertFalse(unit_name in units) + + self.worker.unit = unit_name + self.worker.save() + + response = self.client.get(reverse('web.api.units')) + units = json.loads(response.content)['units'] + + self.assertTrue(unit_name in units) + + def test_referrals(self): + referral_name = "some referral" + + response = self.client.get(reverse('web.api.referrals')) + self.assertEqual(response.status_code, 200) + + referrals = json.loads(response.content)['referrals'] + + self.assertFalse(referral_name in referrals) + + self.subject.referral = referral_name + self.subject.save() + + response = self.client.get(reverse('web.api.referrals')) + referrals = json.loads(response.content)['referrals'] + + self.assertTrue(referral_name in referrals) + + def test_appointment_types(self): + type_name = "some type name" + + response = self.client.get(reverse('web.api.appointment_types')) + self.assertEqual(response.status_code, 200) + + self.appointment_type = create_appointment_type() + self.appointment_type.code = type_name + self.appointment_type.save() + + response = self.client.get(reverse('web.api.appointment_types')) + appointment_types = json.loads(response.content)['appointment_types'] + + found = False + for type in appointment_types: + if type['type']==type_name: + found = True + + self.assertTrue(found)