Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pytest
- from classes import System, Provider, Patient, Appointment, Error
- import datetime
- class Test_Appointment_Booking(object):
- def setup_method(self):
- self.sys = System()
- self.sys.readData()
- #Test: no input date
- def test_no_date_input(self):
- with pytest.raises(Error, match = 'Please select a date'):
- raise self.sys.validateDate("")
- #Test: no input date before current date
- def test_input_date_before_current_date(self):
- d = datetime.date(1900,1,1)
- today = str(d.year) + "-" + str(d.month) + "-" + str(d.day)
- with pytest.raises(Error, match = 'Please enter a date after today'):
- raise self.sys.validateDate(today)
- #Test Case: patient cannot select a booked Time slot
- def test_booked_appointment_removed(self):
- providers = []
- patients = []
- for u in self.sys._users:
- if isinstance(u, Provider):
- providers.append(u)
- if isinstance(u, Patient):
- patients.append(u)
- centres = self.sys._centres
- d = datetime.date(2018,11,11)
- date = str(d.year) + "-" + str(d.month) + "-" + str(d.day)
- self.sys.setAppointment(date,"10:00",providers[7],centres[0],patients[0],None,None)
- times = self.sys.getTimesByCentreAndProv(providers[7], centres[0])
- #convert startHour and Endhour to time
- startTime = self.sys.getStartTime(times)
- endTime = self.sys.getEndTime(times)
- assert len(self.sys.availableTimes(startTime, endTime, providers[7], centres[0], date)) == 2
- #Test: No timeslots left
- def test_no_times_available(self):
- providers = []
- patients = []
- for u in self.sys._users:
- if isinstance(u, Provider):
- providers.append(u)
- if isinstance(u, Patient):
- patients.append(u)
- centres = self.sys._centres
- d = datetime.date(2018,11,11)
- date = str(d.year) + "-" + str(d.month) + "-" + str(d.day)
- self.sys.setAppointment(date,"10:00",providers[7],centres[0],patients[0],None,None)
- self.sys.setAppointment(date,"10:30",providers[7],centres[0],patients[0],None,None)
- self.sys.setAppointment(date,"11:00",providers[7],centres[0],patients[0],None,None)
- times = self.sys.getTimesByCentreAndProv(providers[7], centres[0])
- #convert startHour and Endhour to time
- startTime = self.sys.getStartTime(times)
- endTime = self.sys.getEndTime(times)
- hours = self.sys.availableTimes(startTime, endTime, providers[7], centres[0], date)
- with pytest.raises(Error, match = 'No available hours'):
- raise self.sys.validateTimes(hours)
- # Test a successful booking
- def test_appointment_made(self):
- providers = []
- patients = []
- for u in self.sys._users:
- if isinstance(u, Provider):
- providers.append(u)
- if isinstance(u, Patient):
- patients.append(u)
- centres = self.sys._centres
- d = datetime.date(2020,11,11)
- date = str(d.year) + "-" + str(d.month) + "-" + str(d.day)
- e = self.sys.validateDate(date)
- assert(e == None)
- assert(len(self.sys.getAppointment()) == 0)
- self.sys.setAppointment(date, "10:00",providers[7],centres[0],patients[0],None,None)
- assert(len(self.sys.getAppointment()) == 1)
- class Test_View_Patient_History(object):
- def setup_method(self):
- self.sys = System()
- self.sys.readData()
- def test_view_one_appointment(self):
- providers = []
- patients = []
- for u in self.sys._users:
- if isinstance(u, Provider):
- providers.append(u)
- if isinstance(u, Patient):
- patients.append(u)
- centres = self.sys._centres
- d = datetime.date(2020,12,11)
- date = str(d.year) + "-" + str(d.month) + "-" + str(d.day)
- e = self.sys.validateDate(date)
- reason = "Feeling Feverish"
- self.sys.setAppointment(date, "09:00",providers[4],centres[0],patients[0],None,reason)
- doctorNotes = "1/2 day 50 mg Panadol"
- app = self.sys.getAppointment()
- app[0].setDoctorNotes(doctorNotes)
- patients[0].setHistory(app[0])
- assert(len(self.sys._bookedApps) == 1)
- self.sys.removeAppById(app[0].getId())
- apps = patients[0].getHistory()
- assert(len(apps) == 1)
- assert(apps[0].getDoctorNotes() == doctorNotes)
- assert(apps[0].getTime() == "09:00")
- assert(apps[0].getDate() == date)
- assert(apps[0].getVisitReason() == reason)
- def test_view_multiple_appointments(self):
- providers = []
- patients = []
- for u in self.sys._users:
- if isinstance(u, Provider):
- providers.append(u)
- if isinstance(u, Patient):
- patients.append(u)
- centres = self.sys._centres
- d = datetime.date(2020,12,11)
- date1 = str(d.year) + "-" + str(d.month) + "-" + str(d.day)
- e = self.sys.validateDate(date1)
- reason0 = "Feeling Feverish"
- self.sys.setAppointment(date1, "09:00",providers[4],centres[0],patients[0],None,reason0)
- doctorNotes0 = "1/2 day 50 mg Panadol"
- app = self.sys.getAppointment()
- app[0].setDoctorNotes(doctorNotes0)
- patients[0].setHistory(app[0])
- self.sys.removeAppById(app[0].getId())
- d = datetime.date(2020,12,12)
- date2 = str(d.year) + "-" + str(d.month) + "-" + str(d.day)
- e = self.sys.validateDate(date2)
- reason1 = "Feeling Sluggish"
- self.sys.setAppointment(date2, "10:00",providers[4],centres[0],patients[0],None,reason1)
- doctorNotes1 = "2 times a day 100 mg Diazapam"
- app = self.sys.getAppointment()
- app[0].setDoctorNotes(doctorNotes1)
- patients[0].setHistory(app[0])
- self.sys.removeAppById(app[0].getId())
- d = datetime.date(2020,12,13)
- date3 = str(d.year) + "-" + str(d.month) + "-" + str(d.day)
- e = self.sys.validateDate(date3)
- reason2 = "Simple Checkup"
- self.sys.setAppointment(date3, "08:00",providers[3],centres[0],patients[0],None,reason2)
- doctorNotes2 = "Perfectly healthy"
- app = self.sys.getAppointment()
- app[0].setDoctorNotes(doctorNotes2)
- patients[0].setHistory(app[0])
- self.sys.removeAppById(app[0].getId())
- apps = patients[0].getHistory()
- assert(len(apps) == 3)
- assert(apps[0].getProvider().getEmail() == providers[4].getEmail())
- assert(apps[0].getDoctorNotes() == doctorNotes0)
- assert(apps[0].getTime() == "09:00")
- assert(apps[0].getDate() == date1)
- assert(apps[0].getVisitReason() == reason0)
- assert(apps[1].getProvider().getEmail() == providers[4].getEmail())
- assert(apps[1].getDoctorNotes() == doctorNotes1)
- assert(apps[1].getTime() == "10:00")
- assert(apps[1].getDate() == date2)
- assert(apps[1].getVisitReason() == reason1)
- assert(apps[2].getProvider().getEmail() == providers[3].getEmail())
- assert(apps[2].getDoctorNotes() == doctorNotes2)
- assert(apps[2].getTime() == "08:00")
- assert(apps[2].getDate() == date3)
- assert(apps[2].getVisitReason() == reason2)
- class Test_Manage_Patient_History(object):
- # do not change setup_method name
- def setup_method(self):
- self.sys = System()
- self.sys.readData()
- def test_add_patient_history(self):
- assert len(self.sys._users) == 12
- providers = []
- patients = []
- for u in self.sys._users:
- if isinstance(u, Provider):
- providers.append(u)
- if isinstance(u, Patient):
- patients.append(u)
- assert len(patients) == 4
- assert len(providers) == 8
- centres = self.sys._centres
- assert len(centres) == 6
- d = datetime.date(2018,11,11)
- date = str(d.year) + "-" + str(d.month) + "-" + str(d.day)
- reason = "Have a cold"
- self.sys.setAppointment(date,"10:00",providers[0],centres[0],patients[0],None,reason)
- # Test: Provider adds medical notes for patient
- message = "Prescribed pain meds"
- app = self.sys.getAppointment()
- print(len(app))
- app[0].setDoctorNotes(message)
- patients[0].setHistory(app[0])
- assert(len(self.sys._bookedApps) == 1)
- self.sys.removeAppById(app[0].getId())
- assert(len(self.sys._bookedApps) == 0)
- #Test: Provider views patients medical history
- apps = patients[0].getHistory()
- assert(len(apps) == 1)
- assert(apps[0].getDoctorNotes() == message)
- assert(apps[0].getTime() == "10:00")
- assert(apps[0].getDate() == date)
- assert(apps[0].getVisitReason() == reason)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement