def test_isCallGroupStaff(self): call_group = CallGroup(description='test', team='team') call_group.save() practice = PracticeLocation( practice_name='test', practice_longit='0.1', practice_lat='0.0', ) practice.call_group = call_group practice.save() user = create_user('user5', 'us', 'er', 'demo') #a mhluser call this method result = isCallGroupStaff(user, call_group.pk) self.assertEqual(result, False) staff = OfficeStaff(user=user) staff.save() staff.practices.add(practice) #a staff call this method result = isCallGroupStaff(user, call_group.pk) self.assertEqual(result, True) #a manager call this method manager = Office_Manager(user=staff, practice=practice, manager_role=1) manager.save() result = isCallGroupStaff(user, call_group.pk) self.assertEqual(result, True)
def test_validateNewEvent(self): #invalid data eventInvalid = '' result = validateNewEvent(eventInvalid) self.assertEqual(result, 0) #valid data call_group = CallGroup(description='test', team='team') call_group.save() provider = Provider(username='******', first_name='tes', last_name="meister", email='*****@*****.**', office_lat=0.0, office_longit=0.0) provider.save() callgm = CallGroupMember(call_group=call_group, member=provider, alt_provider=1) callgm.save() data = '[{"pk":null,"model":"Scheduler.evententry","fields":{"oncallPerson":"' + \ str(provider.id) + '","eventType":"0","startDate":"2013-01-01 08:00:00",\ "endDate":"2013-01-02 08:00:00","checkString":"5xTTV2zUPm"}}]' for newdsEventObj in serializers.deserialize("json", data): newdsEventObj.object.callGroup_id = call_group.id newdsEventObj.object.notifyState = 2 newdsEventObj.object.whoCanModify = 1 newdsEventObj.object.eventStatus = 1 result = validateNewEvent(newdsEventObj) self.assertEqual(result, 1)
def test_isCallGroupStaff(self): call_group = CallGroup(description='test', team='team') call_group.save() practice = PracticeLocation(practice_name='test', practice_longit='0.1', practice_lat='0.0',) practice.call_group = call_group practice.save() user = create_user('user5', 'us', 'er', 'demo') #a mhluser call this method result = isCallGroupStaff(user, call_group.pk) self.assertEqual(result, False) staff = OfficeStaff(user=user) staff.save() staff.practices.add(practice) #a staff call this method result = isCallGroupStaff(user, call_group.pk) self.assertEqual(result, True) #a manager call this method manager = Office_Manager(user=staff, practice=practice, manager_role=1) manager.save() result = isCallGroupStaff(user, call_group.pk) self.assertEqual(result, True)
def test_canAccessCallGroup(self): call_group = CallGroup(description='test', team='team') call_group.save() practice = PracticeLocation(practice_name='test', practice_longit='0.1', practice_lat='0.0', call_group=call_group) practice.save() practice.call_groups.add(call_group) user = create_user('user-CallGroup2', 'us', 'er', 'demo') staff = OfficeStaff(user=user) staff.save() staff.practices.add(practice) #a staff call this method result = canAccessCallGroup(staff, long(call_group.pk)) self.assertEqual(result, False) #a manager call this method # manager = Office_Manager(user=staff, practice=practice, manager_role=1) # manager.save() # # result = canAccessCallGroup(manager, long(call_group.pk)) # self.assertEqual(result, True) #admin call this method admin = create_user('user-CallGroup', 'us', 'er', 'demo', '', '', '', '', Administrator) result = canAccessCallGroup(admin.user, call_group) self.assertEqual(result, True) Administrator.objects.all().delete()
def test_saveViewInfo(self): staff = OfficeStaff(user=self.user) staff.save() staff.practices.add(self.practice) staff.current_practice = self.practice staff.save() manager = Office_Manager(user=staff, practice=self.practice, manager_role=1) manager.save() #get method response = self.client.get(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.saveViewInfo', args=(self.practice.id, self.call_group.id))) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(msg['view'], '') #403 call_group2 = CallGroup(description='test2', team='team') call_group2.save() response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.saveViewInfo', args=(self.practice.id, call_group2.id))) self.assertEqual(response.status_code, 403) #post method without session view = {'view': '{"name": "month", "start": "2012-12-01 00:00:00", "end": "2013-01-01 00:00:00"}'} response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.saveViewInfo', args=(self.practice.id, self.call_group.id)), data=view) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(msg['view'], view['view'])
def test_getEvents(self): staff = OfficeStaff(user=self.user) staff.save() staff.practices.add(self.practice) manager = Office_Manager(user=staff, practice=self.practice, manager_role=2) manager.save() errData = {} successDate = {'fromDate': datetime.datetime(2012, 12, 12), 'toDate': datetime.datetime(2012, 12, 17)} #get method response = self.client.get(reverse('MHLogin.MHLCallGroups.Scheduler.'\ 'views_multicallgroup.getEvents', args=(self.practice.id, self.group.id)), data=successDate) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'DateEntry.html') #error data response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.getEvents', args=(self.practice.id, self.group.id)), data=errData) self.assertEqual(response.status_code, 403) #error call group group2 = CallGroup(description='test', team='team') group2.save() response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.getEvents', args=(self.practice.id, group2.id)), data=errData) self.assertEqual(response.status_code, 403) #success data and find 0 event response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.getEvents', args=(self.practice.id, self.group.id)), data=successDate) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(data['redoSize'], 0) self.assertEqual(data['undoSize'], 0) self.assertEqual(data['datas'], '[]') #success data and find 1 event event = EventEntry(creator=self.user, oncallPerson=self.user, callGroup=self.group, startDate=datetime.datetime(2012, 12, 1), endDate=datetime.datetime(2012, 12, 30), title='test event', oncallLevel='0', eventStatus=1, checkString='abc' ) event.save() response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.getEvents', args=(self.practice.id, self.group.id)), data=successDate) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(data['redoSize'], 0) self.assertEqual(data['undoSize'], 0) d = json.loads(data['datas']) self.assertEqual(len(d), 1) self.assertEqual(d[0]['pk'], event.pk)
def test_checkUserCrossDay(self): call_group = CallGroup(description='test', team='team') call_group.save() user = User(username='******', email='*****@*****.**', password='******', first_name='li', last_name='ds') user.save() result = checkUserCrossDay(user) self.assertEqual(result, True) startDate = datetime.datetime.now() + datetime.timedelta(days=-10) endDate = datetime.datetime.now() + datetime.timedelta(days=10) event = EventEntry(creator=user, oncallPerson=user, callGroup=call_group, startDate=startDate, endDate=endDate, title='test event', oncallLevel='0', eventStatus=1, checkString='abc') event.save() result = checkUserCrossDay(user) self.assertEqual(result, False)
def test_getMembers(self): staff = OfficeStaff(user=self.user) staff.save() staff.practices.add(self.practice) staff.current_practice = self.practice staff.save() manager = Office_Manager(user=staff, practice=self.practice, manager_role=1) manager.save() #0 member found response = self.client.post(reverse('MHLogin.MHLCallGroups.views.getMembers', args=(self.call_group.id,))) self.assertEqual(response.status_code, 200) #1 member found provider = Provider(username='******', first_name='tes', last_name="meister", email='*****@*****.**', office_lat=0.0, office_longit=0.0) provider.save() member = CallGroupMember(call_group=self.call_group, member=provider, alt_provider=1) member.save() response = self.client.post(reverse('MHLogin.MHLCallGroups.views.getMembers', args=(self.call_group.id,))) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(len(msg), 1) self.assertEqual(msg[0][0], provider.id) #403 call_group2 = CallGroup(description='test2', team='team') call_group2.save() response = self.client.post(reverse('MHLogin.MHLCallGroups.views.getMembers', args=(call_group2.id,))) self.assertEqual(response.status_code, 403)
def setUpClass(cls): clean_db_datas() user = create_user( 'practicemgr1', 'lin', 'xing', 'demo', '', '', '', '', ) cls.user = user call_group = CallGroup(description='test', team='team') call_group.save() cls.group = call_group practice = PracticeLocation( practice_name='Test Org', practice_longit='0.1', practice_lat='0.0', ) practice.save() cls.practice = practice provider = Provider() provider.user = cls.user provider.office_lat = 0.0 provider.office_longit = 0.0 provider.current_practice = practice provider.save() provider.practices.add(practice) cls.provider = provider practice.call_groups.add(call_group) cls.practice = practice
def setUpClass(cls): clean_db_datas() cls.user = create_user( 'practicemgr1', 'lin', 'xing', 'demo', '', '', '', '', ) call_group = CallGroup(description='test', team='team') call_group.save() cls.call_group = call_group practice = PracticeLocation( practice_name='test', practice_longit='0.1', practice_lat='0.0', ) practice.save() practice.call_groups.add(call_group) cls.practice = practice
def test_new_event(self): staff = OfficeStaff(user=self.user) staff.save() staff.practices.add(self.practice) staff.current_practice = self.practice staff.save() manager = Office_Manager(user=staff, practice=self.practice, manager_role=1) manager.save() #get method response = self.client.get(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.bulkNewEvents', args=(self.practice.id, self.call_group.id))) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, "bulkOperation.html") #post method #not save new event,provider is not in the call group provider = Provider(username='******', first_name='tes', last_name="meister", email='*****@*****.**', office_lat=0.0, office_longit=0.0) provider.save() checkString = 'Ca69J2X6l8' newEventInvalidData = {'data': '[{"pk":null,"model":"Scheduler.evententry","fields":'\ '{"oncallPerson":"' + str(provider.id) + '","eventType":"0",'\ '"startDate":"2012-12-19 08:00:00","endDate":"2012-12-20 08:00:00",'\ '"checkString":"' + checkString + '"}}]', 'view': '{"name":"month","start":"2012-12-01 00:00:00","end":"2013-01-01 00:00:00"}'} response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.bulkNewEvents', args=(self.practice.id, self.call_group.id)), data=newEventInvalidData) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(msg['error'][0], checkString + ', error saving new object') #save new event, provider is in the call group provider2 = Provider(username='******', first_name='tes', last_name="meister", email='*****@*****.**', office_lat=0.0, office_longit=0.0) provider2.save() cgm = CallGroupMember(call_group=self.call_group, member=provider2, alt_provider=1) cgm.save() checkString = 'Ca69J2X6l8' newEventInvalidData = {'data': '[{"pk":null,"model":"Scheduler.evententry","fields":{"oncallPerson":"' + str(provider2.id) + '","eventType":"0","startDate":"2012-12-19 08:00:00","endDate":"2012-12-20 08:00:00",\ "checkString":"' + checkString + '"}}]', 'view': '{"name":"month","start":"2012-12-01 00:00:00","end":"2013-01-01 00:00:00"}'} response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.bulkNewEvents', args=(self.practice.id, self.call_group.id)), data=newEventInvalidData) self.assertEqual(response.status_code, 200) self.assertEqual(EventEntry.objects.count(), 1) #403 call_group2 = CallGroup(description='test2', team='team') call_group2.save() response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.bulkNewEvents', args=(self.practice.id, call_group2.id)), data=newEventInvalidData) self.assertEqual(response.status_code, 403)
def test_isMultiCallGroupManager(self): #init practice and call group call_group = CallGroup(description='test', team='team') call_group.save() practice = PracticeLocation( practice_name='test', practice_longit='0.1', practice_lat='0.0', ) practice.save() practice.call_groups.add(call_group) user = create_user('user1', 'us', 'er', 'demo') #only mhluser call method result = isMultiCallGroupManager(user, practice.id, call_group.id) self.assertEqual(result, False) #staff call method staff = OfficeStaff(user=user) staff.save() result = isMultiCallGroupManager(user, call_group.id, practice.id) self.assertEqual(result, False) practice2 = PracticeLocation( practice_name='test2', practice_longit='0.1', practice_lat='0.0', ) practice2.save() practice2.call_groups.add(call_group) #manager call method staff.practices.add(practice) staff.save() manager = Office_Manager(user=staff, practice=practice, manager_role=1) manager.save() result = isMultiCallGroupManager(user, call_group.id, practice.id) self.assertEqual(result, True) #manager with specialty call method specialty_name = 'Specialty A' specialty1 = Specialty() specialty1.name = specialty_name specialty1.practice_location = practice specialty1.number_selection = 3 specialty1.save() specialty1.call_groups.add(call_group) manager2 = Office_Manager(user=staff, practice=practice2, manager_role=1) manager2.save() result = isMultiCallGroupManager(user, call_group.id, practice.id) self.assertEqual(result, True)
def done(self, request, form_list): inviteform = form_list[0] userform = form_list[1] invite = Invitation.objects.get(code=inviteform.cleaned_data['code'], userType=100) if len(form_list) > 2: practiceform = form_list[2] practice = practiceform.save(commit=False) practice.practice_lat = practiceform.cleaned_data['practice_lat'] practice.practice_longit = practiceform.cleaned_data['practice_longit'] practice.organization_type_id = RESERVED_ORGANIZATION_TYPE_ID_PRACTICE callgroup = CallGroup(description=practiceform.cleaned_data['practice_name']) callgroup.save() practice.call_group = callgroup practice.save() org_relation = OrganizationRelationship(organization=practice, parent_id=RESERVED_ORGANIZATION_ID_DOCTORCOM, create_time=time.time()) org_relation.save() manager_role = 2 else: practice = invite.assignPractice manager_role = 1 user = userform.save(commit=False) user.set_password(userform.cleaned_data['password1']) # use mhluser's address1, address2, city, state, zip to store "address" information, user.address1 = practice.practice_address1 user.address2 = practice.practice_address2 user.city = practice.practice_city user.state = practice.practice_state user.zip = practice.practice_zip user.lat = practice.practice_lat user.longit = practice.practice_longit user.tos_accepted = True if invite.recipient == request.POST['email']: user.email_confirmed = True user.save() staff = OfficeStaff(user=user, current_practice=practice) staff.save() staff.practices.add(practice) manager = Office_Manager(user=staff, practice=practice, manager_role=manager_role) manager.save() # TESTING_KMS_INTEGRATION create_default_keys(user, userform.cleaned_data['password1']) # Remove the invitation. invite.delete(createdUser=user, createdPractice=practice, send_notice=False) msg = render_to_string('MHLSignup/practice_notification_email.txt', {'practice_name': practice.practice_name, 'practice_id': practice.id, 'timestamp': datetime.datetime.now().strftime("%I:%M %m/%d/%Y")}) send_mail("new practice created", msg, '*****@*****.**', ["*****@*****.**"]) return HttpResponseRedirect(self.redirect_url)
def test_getMembers(self): staff = OfficeStaff(user=self.user) staff.save() staff.practices.add(self.practice) staff.current_practice = self.practice staff.save() manager = Office_Manager(user=staff, practice=self.practice, manager_role=1) manager.save() #0 member found response = self.client.post( reverse('MHLogin.MHLCallGroups.views_multicallgroup.getMembers', args=( self.practice.id, self.call_group.id, ))) self.assertEqual(response.status_code, 200) #1 member found provider = Provider(username='******', first_name='tes', last_name="meister", email='*****@*****.**', office_lat=0.0, office_longit=0.0) provider.save() member = CallGroupMember(call_group=self.call_group, member=provider, alt_provider=1) member.save() response = self.client.post( reverse('MHLogin.MHLCallGroups.views_multicallgroup.getMembers', args=( self.practice.id, self.call_group.id, ))) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(len(msg), 1) self.assertEqual(msg[0][0], provider.id) #403 call_group2 = CallGroup(description='test2', team='team') call_group2.save() response = self.client.post( reverse('MHLogin.MHLCallGroups.views_multicallgroup.getMembers', args=( self.practice.id, call_group2.id, ))) self.assertEqual(response.status_code, 403)
def test_isMultiCallGroupManager(self): #init practice and call group call_group = CallGroup(description='test', team='team') call_group.save() practice = PracticeLocation(practice_name='test', practice_longit='0.1', practice_lat='0.0',) practice.save() practice.call_groups.add(call_group) user = create_user('user1', 'us', 'er', 'demo') #only mhluser call method result = isMultiCallGroupManager(user, practice.id, call_group.id) self.assertEqual(result, False) #staff call method staff = OfficeStaff(user=user) staff.save() result = isMultiCallGroupManager(user, call_group.id, practice.id) self.assertEqual(result, False) practice2 = PracticeLocation(practice_name='test2', practice_longit='0.1', practice_lat='0.0',) practice2.save() practice2.call_groups.add(call_group) #manager call method staff.practices.add(practice) staff.save() manager = Office_Manager(user=staff, practice=practice, manager_role=1) manager.save() result = isMultiCallGroupManager(user, call_group.id, practice.id) self.assertEqual(result, True) #manager with specialty call method specialty_name = 'Specialty A' specialty1 = Specialty() specialty1.name = specialty_name specialty1.practice_location = practice specialty1.number_selection = 3 specialty1.save() specialty1.call_groups.add(call_group) manager2 = Office_Manager(user=staff, practice=practice2, manager_role=1) manager2.save() result = isMultiCallGroupManager(user, call_group.id, practice.id) self.assertEqual(result, True)
def test_display_scheduler_403_group(self): dataEmpty = {} staff = OfficeStaff(user=self.user) staff.save() staff.practices.add(self.practice) manager = Office_Manager(user=staff, practice=self.practice, manager_role=2) manager.save() group = CallGroup(description='test', team='team') group.save() response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.'\ 'views_multicallgroup.display_scheduler', args=(self.practice.id, group.id)), data=dataEmpty) self.assertEqual(response.status_code, 403)
def test_checkeUserInCallGroup(self): call_group = CallGroup(description='test', team='team') call_group.save() request = HttpRequest() user = create_user('practicemgr1', 'lin', 'xing', 'demo') provider = Provider(username='******', first_name='tes', last_name="meister", email='*****@*****.**', user=user, office_lat=0.0, office_longit=0.0) provider.save() mem = CallGroupMember(call_group=call_group, member=provider, alt_provider=1) mem.save() request.method = 'POST' request.POST['userId'] = user.pk response = checkeUserInCallGroup(request, call_group.id) self.assertEqual(response.content, '"ok"') call_group2 = CallGroup(description='test', team='team') call_group2.save() response = checkeUserInCallGroup(request, call_group2.id) self.assertEqual(response.content, '"err"')
def setUpClass(cls): clean_db_datas() cls.user = create_user('practicemgr1', 'lin', 'xing', 'demo', '', '', '', '',) group = CallGroup(description='test', team='team') group.save() cls.group = group practice = PracticeLocation(practice_name='test', practice_longit='0.1', practice_lat='0.0',) practice.save() practice.call_groups.add(group) cls.practice = practice
def _add_practices(self): org_setting = OrganizationSetting(can_have_answering_service=True) org_setting.save() for pract in self.practice_data: practice = PracticeLocation.objects.create( practice_name=pract["practice_name"], practice_address1=pract["practice_address1"], practice_address2=pract["practice_address2"], practice_city=pract["practice_city"], practice_state=pract["practice_state"], practice_zip=pract["practice_zip"], mdcom_phone=pract["mdcom_phone"], practice_phone=pract["practice_phone"], time_zone=pract["time_zone"], practice_lat=pract["practice_lat"], practice_longit=pract["practice_longit"], organization_setting=org_setting) practice.save() self.practices.append(practice) self.callgroup1 = CallGroup(description="Team A", team="Team A", number_selection=2) self.callgroup1.save() self.callgroup2 = CallGroup(description="Team B", team="Team B", number_selection=3) self.callgroup2.save() self.callgroup3 = CallGroup(description="Team C", team="Team C", number_selection=4) self.callgroup3.save() self.callgroup4 = CallGroup(description="Team D", team="Team D", number_selection=5) self.callgroup4.save() p1 = self.practices[0] p1.call_group = self.callgroup1 p1.save() p2 = self.practices[1] p2.call_groups.add(self.callgroup2) p2.save() p3 = self.practices[2] p3.call_groups.add(self.callgroup3) p3.call_groups.add(self.callgroup4) p3.save() self.specialty1 = Specialty() self.specialty1.name = 'Cardiology' self.specialty1.practice_location = self.practices[2] self.specialty1.number_selection = 3 self.specialty1.save() self.specialty1.call_groups.add(self.callgroup3) self.specialty2 = Specialty() self.specialty2.name = 'ENT' self.specialty2.practice_location = self.practices[2] self.specialty2.number_selection = 4 self.specialty2.save() self.specialty2.call_groups.add(self.callgroup4)
def test_isCallGroupMember(self): call_group = CallGroup(description='test', team='team') call_group.save() user = create_user('user6', 'us', 'er', 'demo') result = isCallGroupMember(user, call_group.id) self.assertEqual(result, False) provider = Provider(username='******', first_name='tes', last_name="meister", email='*****@*****.**', user=user, office_lat=0.0, office_longit=0.0) provider.save() call_groupm = CallGroupMember(call_group=call_group, member=provider, alt_provider=1) call_groupm.save() result = isCallGroupMember(provider, call_group.id) self.assertEqual(result, True)
def test_getViewInfo(self): staff = OfficeStaff(user=self.user) staff.save() staff.practices.add(self.practice) staff.current_practice = self.practice staff.save() manager = Office_Manager(user=staff, practice=self.practice, manager_role=1) manager.save() #post method response = self.client.post( reverse('MHLogin.MHLCallGroups.Scheduler.views.getViewInfo', args=(self.call_group.id, ))) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(msg['view'], '') #get method without session response = self.client.get( reverse('MHLogin.MHLCallGroups.Scheduler.views.getViewInfo', args=(self.call_group.id, ))) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(msg['view'], '') #403 call_group2 = CallGroup(description='test2', team='team') call_group2.save() response = self.client.get( reverse('MHLogin.MHLCallGroups.Scheduler.views.getViewInfo', args=(call_group2.id, ))) self.assertEqual(response.status_code, 403) #get method with session---TODO view = '{"name":"agendaWeek","start":"2012-12-16 00:00:00","end":"2012-12-23 00:00:00"}' self.client.session[SessionHelper.SCHEDULE_LASTVIEW] = view self.client.session.save() response = self.client.get( reverse('MHLogin.MHLCallGroups.Scheduler.views.getViewInfo', args=(self.call_group.id, ))) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(msg['view'], '')
def test_checkMultiCallGroupId(self): #init practice and call group call_group = CallGroup(description='test', team='team') call_group.save() practice = PracticeLocation( practice_name='test', practice_longit='0.1', practice_lat='0.0', ) practice.save() practice.call_groups.add(call_group) #pass a valid parameter result = checkMultiCallGroupId(practice.id, call_group.id) self.assertEqual(call_group.id, result) #practice not exist # result = checkMultiCallGroupId(117, 0) # self.assertRaises(PracticeLocation.DoesNotExist, result) #pass a invalid call group parameter result = checkMultiCallGroupId(practice.id, 0) self.assertEqual(call_group.id, result) #ther is a specialty practice2 = PracticeLocation( practice_name='test2', practice_longit='0.1', practice_lat='0.0', ) practice2.save() specialty_name = 'Specialty A' specialty1 = Specialty() specialty1.name = specialty_name specialty1.practice_location = practice2 specialty1.number_selection = 3 specialty1.save() specialty1.call_groups.add(call_group) result = checkMultiCallGroupId(practice2.id, 0) self.assertEqual(call_group.id, result)
def test_canAccessMultiCallGroup(self): #init practice and call group call_group = CallGroup(description='test', team='team') call_group.save() practice = PracticeLocation(practice_name='test', practice_longit='0.1', practice_lat='0.0',) practice.save() practice.call_groups.add(call_group) #admin call this method admin = create_user('user-access-group2', 'us', 'er', 'demo', '', '', '', '', Administrator) result = canAccessMultiCallGroup(admin.user, call_group, practice.id) self.assertEqual(result, True) #not admin call this method user = create_user('user-access-group', 'us', 'er', 'demo') result = canAccessMultiCallGroup(user, call_group, practice.id) self.assertEqual(result, False)
def test_getViewInfo(self): staff = OfficeStaff(user=self.user) staff.save() staff.practices.add(self.practice) staff.current_practice = self.practice staff.save() manager = Office_Manager(user=staff, practice=self.practice, manager_role=1) manager.save() #post method response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.getViewInfo', args=(self.practice.id, self.call_group.id))) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(msg['view'], '') #get method without session response = self.client.get(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.getViewInfo', args=(self.practice.id, self.call_group.id))) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(msg['view'], '') #403 call_group2 = CallGroup(description='test2', team='team') call_group2.save() response = self.client.get(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.getViewInfo', args=(self.practice.id, call_group2.id))) self.assertEqual(response.status_code, 403) #get method with session---TODO view = '{"name":"agendaWeek","start":"2012-12-16 00:00:00","end":"2012-12-23 00:00:00"}' self.client.session[SessionHelper.SCHEDULE_LASTVIEW] = view self.client.session.save() response = self.client.get(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.getViewInfo', args=(self.practice.id, self.call_group.id))) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(msg['view'], '')
def test_saveViewInfo(self): staff = OfficeStaff(user=self.user) staff.save() staff.practices.add(self.practice) staff.current_practice = self.practice staff.save() manager = Office_Manager(user=staff, practice=self.practice, manager_role=1) manager.save() #get method response = self.client.get( reverse('MHLogin.MHLCallGroups.Scheduler.views.saveViewInfo', args=(self.call_group.id, ))) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(msg['view'], '') #403 call_group2 = CallGroup(description='test2', team='team') call_group2.save() response = self.client.post( reverse('MHLogin.MHLCallGroups.Scheduler.views.saveViewInfo', args=(call_group2.id, ))) self.assertEqual(response.status_code, 403) #post method without session view = { 'view': '{"name":"month", "start":"2012-12-01 00:00:00", "end":"2013-01-01 00:00:00"}' } response = self.client.post(reverse( 'MHLogin.MHLCallGroups.Scheduler.views.saveViewInfo', args=(self.call_group.id, )), data=view) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(msg['view'], view['view'])
def test_checkMultiCallGroupId(self): #init practice and call group call_group = CallGroup(description='test', team='team') call_group.save() practice = PracticeLocation(practice_name='test', practice_longit='0.1', practice_lat='0.0',) practice.save() practice.call_groups.add(call_group) #pass a valid parameter result = checkMultiCallGroupId(practice.id, call_group.id) self.assertEqual(call_group.id, result) #practice not exist # result = checkMultiCallGroupId(117, 0) # self.assertRaises(PracticeLocation.DoesNotExist, result) #pass a invalid call group parameter result = checkMultiCallGroupId(practice.id, 0) self.assertEqual(call_group.id, result) #ther is a specialty practice2 = PracticeLocation(practice_name='test2', practice_longit='0.1', practice_lat='0.0',) practice2.save() specialty_name = 'Specialty A' specialty1 = Specialty() specialty1.name = specialty_name specialty1.practice_location = practice2 specialty1.number_selection = 3 specialty1.save() specialty1.call_groups.add(call_group) result = checkMultiCallGroupId(practice2.id, 0) self.assertEqual(call_group.id, result)
def test_getPenddings(self): request = HttpRequest() user = create_user('practicemgr1', 'lin', 'xing', 'demo') call_group = CallGroup(description='test', team='team') call_group.save() practice = PracticeLocation(practice_name='test', practice_longit='0.1', practice_lat='0.0',) practice.save() from_user = create_user('from user', 'lin', 'xing', 'demo') to_user = create_user('to user', 'lin', 'xing', 'demo') to_user = Provider(username='******', first_name='tes3', last_name="meister3", email='*****@*****.**', user=to_user, office_lat=0.0, office_longit=0.0) to_user.save() #0 pending find request.user = to_user response = getPenddings(request) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(len(msg), 0) #1 pending find pend = CallGroupMemberPending(from_user=from_user, to_user=to_user, practice=practice, call_group=call_group, accept_status=0, created_time=datetime.datetime.now()) pend.save() request.user = to_user response = getPenddings(request) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(len(msg), 1)
def test_canAccessMultiCallGroup(self): #init practice and call group call_group = CallGroup(description='test', team='team') call_group.save() practice = PracticeLocation( practice_name='test', practice_longit='0.1', practice_lat='0.0', ) practice.save() practice.call_groups.add(call_group) #admin call this method admin = create_user('user-access-group2', 'us', 'er', 'demo', '', '', '', '', Administrator) result = canAccessMultiCallGroup(admin.user, call_group, practice.id) self.assertEqual(result, True) #not admin call this method user = create_user('user-access-group', 'us', 'er', 'demo') result = canAccessMultiCallGroup(user, call_group, practice.id) self.assertEqual(result, False)
def test_checkDSEventConsistency(self): #invalid data eventInvalid = '' result = checkDSEventConsistency(eventInvalid) self.assertEqual(result, 0) #valid data call_group = CallGroup(description='test', team='team') call_group.save() provider = Provider(username='******', first_name='tes', last_name="meister", email='*****@*****.**', office_lat=0.0, office_longit=0.0) provider.save() callgm = CallGroupMember(call_group=call_group, member=provider, alt_provider=1) callgm.save() checkString = 'Ca69J2X6l8' event = EventEntry(creator=provider, oncallPerson=provider, callGroup=call_group, startDate=datetime.datetime(2012, 12, 1), endDate=datetime.datetime(2012, 12, 30), title='test event', oncallLevel='0', eventStatus=1, checkString=checkString ) event.save() data = '[{"pk":' + str(event.pk) + ',"model":"Scheduler.evententry","fields":{"oncallPerson":"' + \ str(provider.id) + '","eventType":"0","startDate":"2013-01-01 08:00:00", \ "endDate":"2013-01-02 08:00:00","checkString":"5xTTV2zUPm"}}]' for newdsEventObj in serializers.deserialize("json", data): newdsEventObj.object.callGroup_id = call_group.id newdsEventObj.object.notifyState = 2 newdsEventObj.object.whoCanModify = 1 newdsEventObj.object.eventStatus = 1 result = checkDSEventConsistency(newdsEventObj) self.assertEqual(result, 1)
def test_checkUserCrossDay(self): call_group = CallGroup(description='test', team='team') call_group.save() user = User(username='******', email='*****@*****.**', password='******', first_name='li', last_name='ds') user.save() result = checkUserCrossDay(user) self.assertEqual(result, True) startDate = datetime.datetime.now() + datetime.timedelta(days= -10) endDate = datetime.datetime.now() + datetime.timedelta(days=10) event = EventEntry(creator=user, oncallPerson=user, callGroup=call_group, startDate=startDate, endDate=endDate, title='test event', oncallLevel='0', eventStatus=1, checkString='abc' ) event.save() result = checkUserCrossDay(user) self.assertEqual(result, False)
def setUpClass(cls): clean_db_datas() user = create_user('practicemgr1', 'lin', 'xing', 'demo', '', '', '', '',) cls.user =user call_group = CallGroup(description='test', team='team') call_group.save() cls.group = call_group practice = PracticeLocation(practice_name='Test Org', practice_longit='0.1', practice_lat='0.0',) practice.save() cls.practice = practice provider = Provider() provider.user = cls.user provider.office_lat = 0.0 provider.office_longit = 0.0 provider.current_practice = practice provider.save() provider.practices.add(practice) cls.provider = provider practice.call_groups.add(call_group) cls.practice = practice
def test_bulkUpdateEvents(self): staff = OfficeStaff(user=self.user) staff.save() staff.practices.add(self.practice) staff.current_practice = self.practice staff.save() manager = Office_Manager(user=staff, practice=self.practice, manager_role=1) manager.save() provider = Provider(username='******', first_name='tes', last_name="meister", email='*****@*****.**', office_lat=0.0, office_longit=0.0) provider.save() checkString = 'Ca69J2X6l8' #init a schecule event event = EventEntry(creator=self.user, oncallPerson=provider, callGroup=self.call_group, startDate=datetime.datetime(2012, 12, 1), endDate=datetime.datetime(2012, 12, 30), title='test event', oncallLevel='0', eventStatus=1, checkString=checkString) event.save() #get method response = self.client.get( reverse('MHLogin.MHLCallGroups.Scheduler.views.bulkUpdateEvents', args=(self.call_group.id, ))) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, "bulkOperation.html") #post method #not save new event,provider is not in the call group newEventInvalidData = { 'data': '[{"pk":' + str(event.pk) + ',"model":"Scheduler.evententry","fields":{"oncallPerson":"' + str(provider.id) + '","eventType":"0","startDate":"2012-12-19 08:00:00",\ "endDate":"2012-12-20 08:00:00","checkString":"' + checkString + '"}}]', 'view': '{"name":"month","start":"2012-12-01 00:00:00","end":"2013-01-01 00:00:00"}' } response = self.client.post(reverse( 'MHLogin.MHLCallGroups.Scheduler.views.bulkUpdateEvents', args=(self.call_group.id, )), data=newEventInvalidData) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual( msg['error'][0].find( str(event.pk) + ', error updating object ' + checkString + ' obj '), 0) #save new event, provider is in the call group provider2 = Provider(username='******', first_name='tes', last_name="meister", email='*****@*****.**', office_lat=0.0, office_longit=0.0) provider2.save() cgm = CallGroupMember(call_group=self.call_group, member=provider2, alt_provider=1) cgm.save() checkString = 'Ca69J2X6l8' newEventInvalidData = { 'data': '[{"pk":' + str(event.pk) + ',"model":"Scheduler.evententry","fields":{"oncallPerson":"' + str(provider2.id) + '","eventType":"0","startDate":"2012-12-19 08:00:00",\ "endDate":"2012-12-20 08:00:00","checkString":"' + checkString + '"}}]', 'view': '{"name":"month","start":"2012-12-01 00:00:00","end":"2013-01-01 00:00:00"}' } response = self.client.post(reverse( 'MHLogin.MHLCallGroups.Scheduler.views.bulkUpdateEvents', args=(self.call_group.id, )), data=newEventInvalidData) self.assertEqual(response.status_code, 200) self.assertEqual(EventEntry.objects.count(), 1) #403 call_group2 = CallGroup(description='test2', team='team') call_group2.save() response = self.client.post(reverse( 'MHLogin.MHLCallGroups.Scheduler.views.bulkUpdateEvents', args=(call_group2.id, )), data=newEventInvalidData) self.assertEqual(response.status_code, 403) #invlid checkstring event update checkString = 'xxxxxxs' newEventInvalidData = { 'data': '[{"pk":' + str(event.pk) + ',"model":"Scheduler.evententry","fields":{"oncallPerson":"' + str(provider2.id) + '","eventType":"0","startDate":"2012-12-19 08:00:00",\ "endDate":"2012-12-20 08:00:00","checkString":"' + checkString + '"}}]', 'view': '{"name":"month","start":"2012-12-01 00:00:00","end":"2013-01-01 00:00:00"}' } response = self.client.post(reverse( 'MHLogin.MHLCallGroups.Scheduler.views.bulkUpdateEvents', args=(self.call_group.id, )), data=newEventInvalidData) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual( msg['error'][0].find( str(event.pk) + ', update failed - invalid checkString xxxxxxs obj'), 0)
class TestIVRBase(TestCase): def setUp(self): # needed at login # create a user to login creating a session needed by ivr tests self.admin = create_user("ivrguy", "ivr", "guy", "demo", "Ocean Avenue", "Carmel", "CA", "93921", uklass=Administrator) # one office manager self.staff = create_user("bblazejowsky", "bill", "blazejowsky", "demo", "Ocean Avenue", "Carmel", "CA", "93921", uklass=OfficeStaff) self.staff.mobile_phone = '4085551234' PracticeLocation.objects.all().delete() # practice location data self.practice_data = [{ "practice_name":"Test practice 1", "practice_address1":"555 Pleasant Pioneer Grove", "practice_address2": "Trailer Q615", "practice_city": "Mountain View", "practice_state": "CA", "practice_zip": "94040-4104", "mdcom_phone": "4085551111", "practice_phone": "4086661111", "time_zone": "US/Pacific", 'practice_lat': '37.36876', "practice_longit":"-122.081864" }, {"practice_name":"San Jose Practice", "practice_address1":"123 McKee Road", "practice_address2": "", "practice_city": "San Jose", "practice_state": "CA", "practice_zip": "94455", "mdcom_phone": "4085552222", "practice_phone": "8006662222", "time_zone": "US/Pacific", 'practice_lat': '33.3', "practice_longit":"22.08" }, {"practice_name":"Third Specialty Practice", "practice_address1":"123 specialty Road", "practice_address2": "", "practice_city": "San Ramon", "practice_state": "CA", "practice_zip": "90041", "mdcom_phone": "4085553333", "practice_phone": "8006663333", "time_zone": "US/Pacific", 'practice_lat': '23.3', "practice_longit":"102.08" }, ] # provider data self.prov_data = [ {"username":"******", "first_name":"bill", "last_name":"doc", "email":"*****@*****.**", "password":"******", "addr1":"Ocean Avenue", "addr2":"main drive", "city":"Carmel", "state":"CA", "zipcode":"93921", "phone":"4085551111", "mobile_phone":"4085559999", "office_address1": "3931 Easy Pioneer Knoll", "office_city": "san jose", "office_zip": "94062-2751", "office_phone": "", "office_state": "CA", "forward_mobile": True, "forward_other": False, "forward_office": False, "forward_vmail": False, "forward_anssvc": "VM", "forward_voicemail": "MO", "status_verified": True, "practices": [], "mdcom_phone": "8004664411", "mdcom_phone_sid": "123" }, {"username":"******", "first_name":"sam", "last_name":"sung", "email":"*****@*****.**", "password":"******", "addr1":"Main Street", "addr2":"main drive", "city":"Carmelita", "state":"CA", "zipcode":"93921", "phone":"4085552222", "mobile_phone":"4085558888", "office_address1": "1234 Easy Street", "office_city": "santa clara", "office_zip": "94060-2751", "office_phone": "", "office_state": "CA", "forward_mobile": True, "forward_other": False, "forward_office": False, "forward_vmail": False, "forward_anssvc": "VM", "forward_voicemail": "VM", "status_verified": True, "practices": [], "mdcom_phone": "8004664422", "mdcom_phone_sid": "321" }, {"username":"******", "first_name":"tim", "last_name":"tam", "email":"*****@*****.**", "password":"******", "addr1":"willow Street", "addr2":"", "city":"Cupertino", "state":"CA", "zipcode":"91234", "phone":"4085553333", "mobile_phone":"4085557777", "office_address1": "1234 Easy Street", "office_city": "santa clara", "office_zip": "94060-2751", "office_phone": "", "office_state": "CA", "forward_mobile": True, "forward_other": False, "forward_office": False, "forward_vmail": False, "forward_anssvc": "MO", "forward_voicemail": "MO", "status_verified": True, "practices": [], "mdcom_phone": "8004664433", "mdcom_phone_sid": "321" }] self.providers = [] self._add_providers() self.practices = [] self._add_practices() self.practice = self.practices[0] self.practice1 = self.practices[1] self.practice2 = self.practices[2] self.office_manager = Office_Manager() self.office_manager.manager_role = 1 self.office_manager.user = self.staff self.office_manager.practice = self.practice self.staff.practices.add(self.practice) self.office_manager.save() self.client.post('/login/', {'username': self.admin.user.username, 'password': '******'}) def tearDown(self): OfficeStaff.objects.filter(id=self.staff.id).delete() PracticeLocation.objects.all().delete() CallGroup.objects.all().delete() Specialty.objects.all().delete() VMBox_Config.objects.all().delete() MHLUser.objects.all().delete() Provider.objects.all().delete() Administrator.objects.all().delete() self.client.logout() def _add_providers(self): for user in self.prov_data: self.pusr = None self.mhu = None self.prov = None pusr = Provider(username=user["username"], first_name=user["first_name"], last_name=user["last_name"]) pusr.is_active = pusr.is_staff = pusr.tos_accepted = True pusr.set_password("demo") pusr.address1 = user['addr1'] pusr.address2 = user['addr2'] pusr.city = user['city'] pusr.state = user['state'] pusr.zip = user['zipcode'] pusr.is_active = pusr.is_staff = pusr.tos_accepted = pusr.mobile_confirmed = pusr.email_confirmed = True pusr.phone = user['phone'] pusr.mobile_phone = user['mobile_phone'] pusr.skill = "" pusr.is_superuser = True pusr.office_address = user["office_address1"] pusr.office_address2 = "" pusr.office_phone = user["office_phone"] pusr.office_city = user["office_city"] pusr.office_state = user["office_state"] pusr.office_zip = user["office_zip"] pusr.forward_mobile = user["forward_mobile"] pusr.forward_office = user["forward_office"] pusr.forward_other = user["forward_other"] pusr.forward_vmail = user["forward_vmail"] pusr.forward_voicemail = user["forward_voicemail"] pusr.forward_anssvc = user["forward_anssvc"] pusr.mdcom_phone = user["mdcom_phone"] pusr.mdcom_phone_sid = user["mdcom_phone_sid"] pusr.status_verified = user["status_verified"] pusr.clinical_clerk = "" pusr.office_lat = 37.36876 pusr.office_longit = -122.081864 pusr.save() pusr.user = pusr user["id"] = pusr.id pusr.practices = user["practices"] pusr.save() vmbox = VMBox_Config(owner=pusr) vmbox.save() self.providers.append(pusr) def _add_practices(self): org_setting = OrganizationSetting(can_have_answering_service=True) org_setting.save() for pract in self.practice_data: practice = PracticeLocation.objects.create( practice_name=pract["practice_name"], practice_address1=pract["practice_address1"], practice_address2=pract["practice_address2"], practice_city=pract["practice_city"], practice_state=pract["practice_state"], practice_zip=pract["practice_zip"], mdcom_phone=pract["mdcom_phone"], practice_phone=pract["practice_phone"], time_zone=pract["time_zone"], practice_lat=pract["practice_lat"], practice_longit=pract["practice_longit"], organization_setting=org_setting) practice.save() self.practices.append(practice) self.callgroup1 = CallGroup(description="Team A", team="Team A", number_selection=2) self.callgroup1.save() self.callgroup2 = CallGroup(description="Team B", team="Team B", number_selection=3) self.callgroup2.save() self.callgroup3 = CallGroup(description="Team C", team="Team C", number_selection=4) self.callgroup3.save() self.callgroup4 = CallGroup(description="Team D", team="Team D", number_selection=5) self.callgroup4.save() p1 = self.practices[0] p1.call_group = self.callgroup1 p1.save() p2 = self.practices[1] p2.call_groups.add(self.callgroup2) p2.save() p3 = self.practices[2] p3.call_groups.add(self.callgroup3) p3.call_groups.add(self.callgroup4) p3.save() self.specialty1 = Specialty() self.specialty1.name = 'Cardiology' self.specialty1.practice_location = self.practices[2] self.specialty1.number_selection = 3 self.specialty1.save() self.specialty1.call_groups.add(self.callgroup3) self.specialty2 = Specialty() self.specialty2.name = 'ENT' self.specialty2.practice_location = self.practices[2] self.specialty2.number_selection = 4 self.specialty2.save() self.specialty2.call_groups.add(self.callgroup4) # also set up practice hours etc def cleanup_rsa(self): OwnerPublicKey.objects.all().delete() UserPrivateKey.objects.all().delete()
def test_joincallgroup(self): from_user = Provider(username='******', first_name='tes', last_name="meister", email='*****@*****.**', office_lat=0.0, office_longit=0.0) from_user.save() to_user = Provider(username='******', first_name='tes3', last_name="meister3", email='*****@*****.**', office_lat=0.0, office_longit=0.0) to_user.save() call_group_team = 'team' call_group = CallGroup(description='test', team=call_group_team) call_group.save() practice = PracticeLocation(practice_name='test', practice_longit='0.1', practice_lat='0.0',) practice.save() practice.call_groups.add(call_group) #init http request request = HttpRequest() request.session = dict() request.session['MHL_Users'] = {} request.session['MHL_UserIDs'] = 'OfficeStaff' #test get method request.method = 'GET' #test get method and accept type type = 'Accept' response = joinCallGroup(request, type) self.assertEqual(response.status_code, 200) self.assertEqual(response.content, '"err"') #test get method and reject type type = 'Reject' response = joinCallGroup(request, type) self.assertEqual(response.status_code, 200) self.assertEqual(response.content, '"err"') #test method post request.method = 'POST' accept_group = CallGroupMemberPending(from_user=from_user, to_user=to_user, practice=practice, call_group=call_group, created_time=datetime.datetime.now()) accept_group.save() request.POST['id'] = accept_group.id request.session['MHL_Users']['Provider'] = to_user #accept 1 provider in call group type = 'Accept' response = joinCallGroup(request, type) self.assertEqual(response.status_code, 200) ret_data = json.loads(response.content) self.assertEqual(ret_data["success"], True) self.assertEqual(ret_data["message"], \ _('You have successfully joined %s call group.')\ %(call_group_team)) cgm = CallGroupMemberPending.objects.get(pk=accept_group.id) self.assertEqual(cgm.accept_status, 1) #reject 1 provider in call group cgmReject = CallGroupMemberPending(from_user=from_user, to_user=to_user, practice=practice, call_group=call_group, created_time=datetime.datetime.now()) cgmReject.save() request.POST['id'] = cgmReject.id type = 'Reject' response = joinCallGroup(request, type) self.assertEqual(response.status_code, 200) ret_data = json.loads(response.content) self.assertEqual(ret_data["success"], True) self.assertEqual(ret_data["message"], \ _('You have declined %s\'s invitation.')\ %(call_group_team)) cgm = CallGroupMemberPending.objects.get(pk=cgmReject.id) self.assertEqual(cgm.accept_status, 2)
class TestIVRBase(TestCase): def setUp(self): # needed at login # create a user to login creating a session needed by ivr tests self.admin = create_user("ivrguy", "ivr", "guy", "demo", "Ocean Avenue", "Carmel", "CA", "93921", uklass=Administrator) # one office manager self.staff = create_user("bblazejowsky", "bill", "blazejowsky", "demo", "Ocean Avenue", "Carmel", "CA", "93921", uklass=OfficeStaff) self.staff.mobile_phone = '4085551234' PracticeLocation.objects.all().delete() # practice location data self.practice_data = [ { "practice_name": "Test practice 1", "practice_address1": "555 Pleasant Pioneer Grove", "practice_address2": "Trailer Q615", "practice_city": "Mountain View", "practice_state": "CA", "practice_zip": "94040-4104", "mdcom_phone": "4085551111", "practice_phone": "4086661111", "time_zone": "US/Pacific", 'practice_lat': '37.36876', "practice_longit": "-122.081864" }, { "practice_name": "San Jose Practice", "practice_address1": "123 McKee Road", "practice_address2": "", "practice_city": "San Jose", "practice_state": "CA", "practice_zip": "94455", "mdcom_phone": "4085552222", "practice_phone": "8006662222", "time_zone": "US/Pacific", 'practice_lat': '33.3', "practice_longit": "22.08" }, { "practice_name": "Third Specialty Practice", "practice_address1": "123 specialty Road", "practice_address2": "", "practice_city": "San Ramon", "practice_state": "CA", "practice_zip": "90041", "mdcom_phone": "4085553333", "practice_phone": "8006663333", "time_zone": "US/Pacific", 'practice_lat': '23.3', "practice_longit": "102.08" }, ] # provider data self.prov_data = [{ "username": "******", "first_name": "bill", "last_name": "doc", "email": "*****@*****.**", "password": "******", "addr1": "Ocean Avenue", "addr2": "main drive", "city": "Carmel", "state": "CA", "zipcode": "93921", "phone": "4085551111", "mobile_phone": "4085559999", "office_address1": "3931 Easy Pioneer Knoll", "office_city": "san jose", "office_zip": "94062-2751", "office_phone": "", "office_state": "CA", "forward_mobile": True, "forward_other": False, "forward_office": False, "forward_vmail": False, "forward_anssvc": "VM", "forward_voicemail": "MO", "status_verified": True, "practices": [], "mdcom_phone": "8004664411", "mdcom_phone_sid": "123" }, { "username": "******", "first_name": "sam", "last_name": "sung", "email": "*****@*****.**", "password": "******", "addr1": "Main Street", "addr2": "main drive", "city": "Carmelita", "state": "CA", "zipcode": "93921", "phone": "4085552222", "mobile_phone": "4085558888", "office_address1": "1234 Easy Street", "office_city": "santa clara", "office_zip": "94060-2751", "office_phone": "", "office_state": "CA", "forward_mobile": True, "forward_other": False, "forward_office": False, "forward_vmail": False, "forward_anssvc": "VM", "forward_voicemail": "VM", "status_verified": True, "practices": [], "mdcom_phone": "8004664422", "mdcom_phone_sid": "321" }, { "username": "******", "first_name": "tim", "last_name": "tam", "email": "*****@*****.**", "password": "******", "addr1": "willow Street", "addr2": "", "city": "Cupertino", "state": "CA", "zipcode": "91234", "phone": "4085553333", "mobile_phone": "4085557777", "office_address1": "1234 Easy Street", "office_city": "santa clara", "office_zip": "94060-2751", "office_phone": "", "office_state": "CA", "forward_mobile": True, "forward_other": False, "forward_office": False, "forward_vmail": False, "forward_anssvc": "MO", "forward_voicemail": "MO", "status_verified": True, "practices": [], "mdcom_phone": "8004664433", "mdcom_phone_sid": "321" }] self.providers = [] self._add_providers() self.practices = [] self._add_practices() self.practice = self.practices[0] self.practice1 = self.practices[1] self.practice2 = self.practices[2] self.office_manager = Office_Manager() self.office_manager.manager_role = 1 self.office_manager.user = self.staff self.office_manager.practice = self.practice self.staff.practices.add(self.practice) self.office_manager.save() self.client.post('/login/', { 'username': self.admin.user.username, 'password': '******' }) def tearDown(self): OfficeStaff.objects.filter(id=self.staff.id).delete() PracticeLocation.objects.all().delete() CallGroup.objects.all().delete() Specialty.objects.all().delete() VMBox_Config.objects.all().delete() MHLUser.objects.all().delete() Provider.objects.all().delete() Administrator.objects.all().delete() self.client.logout() def _add_providers(self): for user in self.prov_data: self.pusr = None self.mhu = None self.prov = None pusr = Provider(username=user["username"], first_name=user["first_name"], last_name=user["last_name"]) pusr.is_active = pusr.is_staff = pusr.tos_accepted = True pusr.set_password("demo") pusr.address1 = user['addr1'] pusr.address2 = user['addr2'] pusr.city = user['city'] pusr.state = user['state'] pusr.zip = user['zipcode'] pusr.is_active = pusr.is_staff = pusr.tos_accepted = pusr.mobile_confirmed = pusr.email_confirmed = True pusr.phone = user['phone'] pusr.mobile_phone = user['mobile_phone'] pusr.skill = "" pusr.is_superuser = True pusr.office_address = user["office_address1"] pusr.office_address2 = "" pusr.office_phone = user["office_phone"] pusr.office_city = user["office_city"] pusr.office_state = user["office_state"] pusr.office_zip = user["office_zip"] pusr.forward_mobile = user["forward_mobile"] pusr.forward_office = user["forward_office"] pusr.forward_other = user["forward_other"] pusr.forward_vmail = user["forward_vmail"] pusr.forward_voicemail = user["forward_voicemail"] pusr.forward_anssvc = user["forward_anssvc"] pusr.mdcom_phone = user["mdcom_phone"] pusr.mdcom_phone_sid = user["mdcom_phone_sid"] pusr.status_verified = user["status_verified"] pusr.clinical_clerk = "" pusr.office_lat = 37.36876 pusr.office_longit = -122.081864 pusr.save() pusr.user = pusr user["id"] = pusr.id pusr.practices = user["practices"] pusr.save() vmbox = VMBox_Config(owner=pusr) vmbox.save() self.providers.append(pusr) def _add_practices(self): org_setting = OrganizationSetting(can_have_answering_service=True) org_setting.save() for pract in self.practice_data: practice = PracticeLocation.objects.create( practice_name=pract["practice_name"], practice_address1=pract["practice_address1"], practice_address2=pract["practice_address2"], practice_city=pract["practice_city"], practice_state=pract["practice_state"], practice_zip=pract["practice_zip"], mdcom_phone=pract["mdcom_phone"], practice_phone=pract["practice_phone"], time_zone=pract["time_zone"], practice_lat=pract["practice_lat"], practice_longit=pract["practice_longit"], organization_setting=org_setting) practice.save() self.practices.append(practice) self.callgroup1 = CallGroup(description="Team A", team="Team A", number_selection=2) self.callgroup1.save() self.callgroup2 = CallGroup(description="Team B", team="Team B", number_selection=3) self.callgroup2.save() self.callgroup3 = CallGroup(description="Team C", team="Team C", number_selection=4) self.callgroup3.save() self.callgroup4 = CallGroup(description="Team D", team="Team D", number_selection=5) self.callgroup4.save() p1 = self.practices[0] p1.call_group = self.callgroup1 p1.save() p2 = self.practices[1] p2.call_groups.add(self.callgroup2) p2.save() p3 = self.practices[2] p3.call_groups.add(self.callgroup3) p3.call_groups.add(self.callgroup4) p3.save() self.specialty1 = Specialty() self.specialty1.name = 'Cardiology' self.specialty1.practice_location = self.practices[2] self.specialty1.number_selection = 3 self.specialty1.save() self.specialty1.call_groups.add(self.callgroup3) self.specialty2 = Specialty() self.specialty2.name = 'ENT' self.specialty2.practice_location = self.practices[2] self.specialty2.number_selection = 4 self.specialty2.save() self.specialty2.call_groups.add(self.callgroup4) # also set up practice hours etc def cleanup_rsa(self): OwnerPublicKey.objects.all().delete() UserPrivateKey.objects.all().delete()
def test_getEvents(self): staff = OfficeStaff(user=self.user) staff.save() staff.practices.add(self.practice) manager = Office_Manager(user=staff, practice=self.practice, manager_role=2) manager.save() errData = {} successDate = { 'fromDate': datetime.datetime(2012, 12, 12), 'toDate': datetime.datetime(2012, 12, 17) } #get method response = self.client.get(reverse( 'MHLogin.MHLCallGroups.Scheduler.views.getEvents', args=(self.call_group.id, )), data=successDate) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, 'DateEntry.html') #error data response = self.client.post(reverse( 'MHLogin.MHLCallGroups.Scheduler.views.getEvents', args=(self.call_group.id, )), data=errData) self.assertEqual(response.status_code, 403) #success data and find 0 event response = self.client.post(reverse( 'MHLogin.MHLCallGroups.Scheduler.views.getEvents', args=(self.call_group.id, )), data=successDate) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(data['redoSize'], 0) self.assertEqual(data['undoSize'], 0) self.assertEqual(data['datas'], '[]') #success data and find 0 event and call group in form successDateForm = { 'fromDate': datetime.datetime(2012, 12, 12), 'toDate': datetime.datetime(2012, 12, 17), 'callGroup': self.call_group.id } response = self.client.post(reverse( 'MHLogin.MHLCallGroups.Scheduler.views.getEvents', args=(self.call_group.id, )), data=successDateForm) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(data['redoSize'], 0) self.assertEqual(data['undoSize'], 0) self.assertEqual(data['datas'], '[]') #success data and find 1 event event = EventEntry(creator=self.user, oncallPerson=self.user, callGroup=self.call_group, startDate=datetime.datetime(2012, 12, 1), endDate=datetime.datetime(2012, 12, 30), title='test event', oncallLevel='0', eventStatus=1, checkString='abc') event.save() response = self.client.post(reverse( 'MHLogin.MHLCallGroups.Scheduler.views.getEvents', args=(self.call_group.id, )), data=successDate) self.assertEqual(response.status_code, 200) data = json.loads(response.content) self.assertEqual(data['redoSize'], 0) self.assertEqual(data['undoSize'], 0) d = json.loads(data['datas']) self.assertEqual(len(d), 1) self.assertEqual(d[0]['pk'], event.pk) #error call group call_group2 = CallGroup(description='test', team='team') call_group2.save() response = self.client.post(reverse( 'MHLogin.MHLCallGroups.Scheduler.views.getEvents', args=(call_group2.id, )), data=errData) self.assertEqual(response.status_code, 403)
def test_redo(self): staff = OfficeStaff(user=self.user) staff.save() staff.practices.add(self.practice) staff.current_practice = self.practice staff.save() manager = Office_Manager(user=staff, practice=self.practice, manager_role=1) manager.save() #403 call_group2 = CallGroup(description='test2', team='team') call_group2.save() response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.redo', args=(self.practice.id, call_group2.id))) self.assertEqual(response.status_code, 403) response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.redo', args=(self.practice.id, self.call_group.id))) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(msg['count'], 0) #create a new event, and redo provider = Provider(username='******', first_name='tes', last_name="meister", email='*****@*****.**', office_lat=0.0, office_longit=0.0, current_practice=self.practice) provider.save() provider.practices.add(self.practice) cgm = CallGroupMember(call_group=self.call_group, member=provider, alt_provider=1) cgm.save() checkString = 'Ca69J2X6l8' newEventInvalidData = {'data': '[{"pk":null,"model":"Scheduler.evententry","fields":{"oncallPerson":"' + str(provider.id) + '","eventType":"0","startDate":"2012-12-19 08:00:00","endDate":"2012-12-20 08:00:00",\ "checkString":"' + checkString + '"}}]', 'view': '{"name":"month","start":"2012-12-01 00:00:00","end":"2013-01-01 00:00:00"}'} new_event = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.bulkNewEvents', args=(self.practice.id, self.call_group.id)), data=newEventInvalidData) response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.redo', args=(self.practice.id, self.call_group.id))) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(msg['undoSize'], 1) self.assertEqual(msg['redoSize'], 0) self.assertEqual(EventEntry.objects.count(), 1) #create a new and change event 1 time event = EventEntry.objects.get(checkString=checkString) #update updateEventInvalidData = {'data': '[{"pk":' + str(event.pk) + ',"model":"Scheduler.evententry","fields":{"oncallPerson":"' + str(provider.id) + '","eventType":"0","startDate":"2012-12-20 08:00:00",\ "endDate":"2012-12-21 08:00:00","eventStatus":1,"checkString":"' + checkString + '"}}]', 'view': '{"name":"month","start":"2012-12-01 00:00:00","end":"2013-01-01 00:00:00"}'} response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.bulkUpdateEvents', args=(self.practice.id, self.call_group.id)), data=updateEventInvalidData) response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.redo', args=(self.practice.id, self.call_group.id))) msg = json.loads(response.content) self.assertEqual(msg['redoSize'], 0) self.assertEqual(msg['undoSize'], 2) self.assertEqual(msg['operateList'], [])
def test_new_event(self): staff = OfficeStaff(user=self.user) staff.save() staff.practices.add(self.practice) staff.current_practice = self.practice staff.save() manager = Office_Manager(user=staff, practice=self.practice, manager_role=1) manager.save() #get method response = self.client.get( reverse('MHLogin.MHLCallGroups.Scheduler.views.bulkNewEvents', args=(self.call_group.id, ))) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, "bulkOperation.html") #post method #not save new event,provider is not in the call group provider = Provider(username='******', first_name='tes', last_name="meister", email='*****@*****.**', office_lat=0.0, office_longit=0.0) provider.save() checkString = 'Ca69J2X6l8' newEventInvalidData = {'data': '[{"pk":null,"model":"Scheduler.evententry","fields":{"oncallPerson":"' + \ str(provider.id) + '","eventType":"0","startDate":"2012-12-19 08:00:00",\ "endDate":"2012-12-20 08:00:00","checkString":"' + checkString + '"}}]', 'view': '{"name": "month","start": "2012-12-01 00:00:00","end": "2013-01-01 00:00:00"}'} response = self.client.post(reverse( 'MHLogin.MHLCallGroups.Scheduler.views.bulkNewEvents', args=(self.call_group.id, )), data=newEventInvalidData) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(msg['error'][0], checkString + ', error saving new object') #save new event, provider is in the call group provider2 = Provider(username='******', first_name='tes', last_name="meister", email='*****@*****.**', office_lat=0.0, office_longit=0.0) provider2.save() cgm = CallGroupMember(call_group=self.call_group, member=provider2, alt_provider=1) cgm.save() checkString = 'Ca69J2X6l8' newEventInvalidData = { 'data': '[{"pk":null,"model":"Scheduler.evententry","fields":{"oncallPerson":"' + str(provider2.id) + '","eventType":"0","startDate":"2012-12-19 08:00:00",\ "endDate":"2012-12-20 08:00:00","checkString":"' + checkString + '"}}]', 'view': '{"name":"month","start":"2012-12-01 00:00:00","end":"2013-01-01 00:00:00"}' } response = self.client.post(reverse( 'MHLogin.MHLCallGroups.Scheduler.views.bulkNewEvents', args=(self.call_group.id, )), data=newEventInvalidData) self.assertEqual(response.status_code, 200) self.assertEqual(EventEntry.objects.count(), 1) #403 call_group2 = CallGroup(description='test2', team='team') call_group2.save() response = self.client.post(reverse( 'MHLogin.MHLCallGroups.Scheduler.views.bulkNewEvents', args=(call_group2.id, )), data=newEventInvalidData) self.assertEqual(response.status_code, 403)
def test_bulkUpdateEvents(self): staff = OfficeStaff(user=self.user) staff.save() staff.practices.add(self.practice) staff.current_practice = self.practice staff.save() manager = Office_Manager(user=staff, practice=self.practice, manager_role=1) manager.save() provider = Provider(username='******', first_name='tes', last_name="meister", email='*****@*****.**', office_lat=0.0, office_longit=0.0) provider.save() checkString = 'Ca69J2X6l8' #init a schecule event event = EventEntry(creator=self.user, oncallPerson=provider, callGroup=self.call_group, startDate=datetime.datetime(2012, 12, 1), endDate=datetime.datetime(2012, 12, 30), title='test event', oncallLevel='0', eventStatus=1, checkString=checkString ) event.save() #get method response = self.client.get(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.bulkUpdateEvents', args=(self.practice.id, self.call_group.id))) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, "bulkOperation.html") #post method #not save new event,provider is not in the call group newEventInvalidData = {'data': '[{"pk":' + str(event.pk) + ',"model":"Scheduler.evententry","fields":{"oncallPerson":"' + str(provider.id) + '","eventType":"0","startDate":"2012-12-19 08:00:00","endDate":"2012-12-20 08:00:00","checkString":"' + checkString + '"}}]', 'view': '{"name":"month","start":"2012-12-01 00:00:00","end":"2013-01-01 00:00:00"}'} response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.bulkUpdateEvents', args=(self.practice.id, self.call_group.id)), data=newEventInvalidData) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(msg['error'][0].find(str(event.pk) + ', error updating object ' + checkString + ' obj '), 0) #save new event, provider is in the call group provider2 = Provider(username='******', first_name='tes', last_name="meister", email='*****@*****.**', office_lat=0.0, office_longit=0.0) provider2.save() cgm = CallGroupMember(call_group=self.call_group, member=provider2, alt_provider=1) cgm.save() checkString = 'Ca69J2X6l8' newEventInvalidData = {'data': '[{"pk":' + str(event.pk) + ',"model":"Scheduler.evententry","fields":{"oncallPerson":"' + str(provider2.id) + '","eventType":"0","startDate":"2012-12-19 08:00:00",\ "endDate":"2012-12-20 08:00:00","checkString":"' + checkString + '"}}]', 'view': '{"name":"month","start":"2012-12-01 00:00:00","end":"2013-01-01 00:00:00"}'} response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.bulkUpdateEvents', args=(self.practice.id, self.call_group.id)), data=newEventInvalidData) self.assertEqual(response.status_code, 200) self.assertEqual(EventEntry.objects.count(), 1) #403 call_group2 = CallGroup(description='test2', team='team') call_group2.save() response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.bulkUpdateEvents', args=(self.practice.id, call_group2.id)), data=newEventInvalidData) self.assertEqual(response.status_code, 403) #invlid checkstring event update checkString = 'xxxxxxs' newEventInvalidData = {'data': '[{"pk":' + str(event.pk) + ',"model":"Scheduler.evententry","fields":{"oncallPerson":"' + str(provider2.id) + '","eventType":"0","startDate":"2012-12-19 08:00:00","endDate":\ "2012-12-20 08:00:00","checkString":"' + checkString + '"}}]', 'view': '{"name":"month","start":"2012-12-01 00:00:00","end":"2013-01-01 00:00:00"}'} response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.bulkUpdateEvents', args=(self.practice.id, self.call_group.id)), data=newEventInvalidData) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(msg['error'][0].find(str(event.pk) + ', update failed - invalid checkString xxxxxxs obj'), 0)
def test_redo(self): staff = OfficeStaff(user=self.user) staff.save() staff.practices.add(self.practice) staff.current_practice = self.practice staff.save() manager = Office_Manager(user=staff, practice=self.practice, manager_role=1) manager.save() #403 call_group2 = CallGroup(description='test2', team='team') call_group2.save() response = self.client.post( reverse('MHLogin.MHLCallGroups.Scheduler.views.redo', args=(call_group2.id, ))) self.assertEqual(response.status_code, 403) response = self.client.post( reverse('MHLogin.MHLCallGroups.Scheduler.views.redo', args=(self.call_group.id, ))) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(msg['count'], 0) #create a new event, and redo provider = Provider(username='******', first_name='tes', last_name="meister", email='*****@*****.**', office_lat=0.0, office_longit=0.0, current_practice=self.practice) provider.save() provider.practices.add(self.practice) cgm = CallGroupMember(call_group=self.call_group, member=provider, alt_provider=1) cgm.save() checkString = 'Ca69J2X6l8' newEventInvalidData = { 'data': '[{"pk":null,"model":"Scheduler.evententry","fields":{"oncallPerson":"' + str(provider.id) + '","eventType":"0","startDate":"2012-12-19 08:00:00",\ "endDate":"2012-12-20 08:00:00","checkString":"' + checkString + '"}}]', 'view': '{"name":"month","start":"2012-12-01 00:00:00","end":"2013-01-01 00:00:00"}' } new_event = self.client.post(reverse( 'MHLogin.MHLCallGroups.Scheduler.views.bulkNewEvents', args=(self.call_group.id, )), data=newEventInvalidData) response = self.client.post( reverse('MHLogin.MHLCallGroups.Scheduler.views.redo', args=(self.call_group.id, ))) self.assertEqual(response.status_code, 200) msg = json.loads(response.content) self.assertEqual(msg['undoSize'], 1) self.assertEqual(msg['redoSize'], 0) self.assertEqual(EventEntry.objects.count(), 1) #create a new and change event 1 time event = EventEntry.objects.get(checkString=checkString) #update updateEventInvalidData = { 'data': '[{"pk":' + str(event.pk) + ',"model":"Scheduler.evententry","fields":{"oncallPerson":"' + str(provider.id) + '","eventType":"0","startDate":"2012-12-20 08:00:00","endDate":"2012-12-21 08:00:00",\ "eventStatus":1,"checkString":"' + checkString + '"}}]', 'view': '{"name":"month","start":"2012-12-01 00:00:00","end":"2013-01-01 00:00:00"}' } response = self.client.post(reverse( 'MHLogin.MHLCallGroups.Scheduler.views.bulkUpdateEvents', args=(self.call_group.id, )), data=updateEventInvalidData) response = self.client.post( reverse('MHLogin.MHLCallGroups.Scheduler.views.redo', args=(self.call_group.id, ))) msg = json.loads(response.content) self.assertEqual(msg['redoSize'], 0) self.assertEqual(msg['undoSize'], 2) self.assertEqual(msg['operateList'], [])
def done(self, request, form_list): inviteform = form_list[0] userform = form_list[1] invite = Invitation.objects.get(code=inviteform.cleaned_data['code'], userType=100) if len(form_list) > 2: practiceform = form_list[2] practice = practiceform.save(commit=False) practice.practice_lat = practiceform.cleaned_data['practice_lat'] practice.practice_longit = practiceform.cleaned_data[ 'practice_longit'] practice.organization_type_id = RESERVED_ORGANIZATION_TYPE_ID_PRACTICE callgroup = CallGroup( description=practiceform.cleaned_data['practice_name']) callgroup.save() practice.call_group = callgroup practice.save() org_relation = OrganizationRelationship( organization=practice, parent_id=RESERVED_ORGANIZATION_ID_DOCTORCOM, create_time=time.time()) org_relation.save() manager_role = 2 else: practice = invite.assignPractice manager_role = 1 user = userform.save(commit=False) user.set_password(userform.cleaned_data['password1']) # use mhluser's address1, address2, city, state, zip to store "address" information, user.address1 = practice.practice_address1 user.address2 = practice.practice_address2 user.city = practice.practice_city user.state = practice.practice_state user.zip = practice.practice_zip user.lat = practice.practice_lat user.longit = practice.practice_longit user.tos_accepted = True if invite.recipient == request.POST['email']: user.email_confirmed = True user.save() staff = OfficeStaff(user=user, current_practice=practice) staff.save() staff.practices.add(practice) manager = Office_Manager(user=staff, practice=practice, manager_role=manager_role) manager.save() # TESTING_KMS_INTEGRATION create_default_keys(user, userform.cleaned_data['password1']) # Remove the invitation. invite.delete(createdUser=user, createdPractice=practice, send_notice=False) msg = render_to_string( 'MHLSignup/practice_notification_email.txt', { 'practice_name': practice.practice_name, 'practice_id': practice.id, 'timestamp': datetime.datetime.now().strftime("%I:%M %m/%d/%Y") }) send_mail("new practice created", msg, '*****@*****.**', ["*****@*****.**"]) return HttpResponseRedirect(self.redirect_url)