def test_practice_info(self): organization_type = create_org_type() practice = ct_practice('name', organization_type) request = generateHttpRequest() #a provider login result = practice_info(request, practice.id) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(msg['data']['id'], practice.id) #a staff login staff = OfficeStaff(user=request.user) staff.save() manager = Office_Manager(user=staff, practice=practice, manager_role=2) manager.save() assn = SmartPhoneAssn.all_objects.get( device_id=request.REQUEST['DCOM_DEVICE_ID']) assn.user_type = 100 assn.save(request) #invalid practice result = practice_info(request, 0) self.assertEqual(result.status_code, 400) msg = json.loads(result.content) self.assertEqual(msg['errno'], 'PF003') #valid practice result = practice_info(request, practice.id) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(msg['data']['id'], practice.id)
def test_community_providers(self): request = generateHttpRequest() #find 0 provider result = community_providers(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(len(msg['data']['users']), 0) #find 1 provider phy = Physician(user=request.provider) phy.save() result = community_providers(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(len(msg['data']['users']), 1) organization_type = create_org_type() practice = ct_practice('name', organization_type) assn = SmartPhoneAssn.all_objects.get( device_id=request.REQUEST['DCOM_DEVICE_ID']) assn.user_type = 100 assn.save(request) staff = OfficeStaff(user=request.user, current_practice=practice) staff.save() result = community_providers(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(len(msg['data']['users']), 1)
def test_practice_providers(self): request = generateHttpRequest() #provider has no current practice result = practice_providers(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(len(msg['data']['users']), 0) organization_type = create_org_type() practice = ct_practice('name', organization_type) request.provider.current_practice = practice #provider has current practice but find 0 result = practice_providers(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(len(msg['data']['users']), 0) #provider has current practice and find 1 request.provider.practices.add(practice) request.provider.clinical_clerk = True request.provider.save() phy = Physician(user=request.provider) phy.save() result = practice_providers(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(len(msg['data']['users']), 1)
def test_local_office(self): request = generateHttpRequest() #a provider call this method result = local_office(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(len(msg['data']['practices']), 0) #a office manager login but has not current practice organization_type = create_org_type() practice = ct_practice('name', organization_type) staff = OfficeStaff(user=request.user) staff.save() manager = Office_Manager(user=staff, practice=practice, manager_role=2) manager.save() assn = SmartPhoneAssn.all_objects.get( device_id=request.REQUEST['DCOM_DEVICE_ID']) assn.user_type = 100 assn.save(request) result = local_office(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(len(msg['data']['practices']), 0) #a office manager login and has current practice staff.current_practice = practice result = local_office(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(len(msg['data']['practices']), 0)
def setUpClass(cls): clean_db_datas() organization_type = create_org_type() practice = ct_practice('name', organization_type) cls.practice = practice user = create_user('practicemgr1', 'lin', 'xing', 'demo') cls.user = user
def setUpClass(cls): clean_db_datas() organization_type = create_org_type() practice = PracticeLocation(practice_name='test', practice_longit='0.1', practice_lat='0.0', mdcom_phone='8005550085', organization_type=organization_type) practice.save() cls.practice = practice user = create_user('practicemgr1', 'lin', 'xing', 'demo') cls.user = user
def test_practice_mgmt(self, start_thread): request = generateHttpRequest() #get method and provider request.method = 'GET' result = practice_mgmt(request) self.assertEqual(result.status_code, 200) #get method and staff staff = OfficeStaff(user=request.user) staff.save() assn = SmartPhoneAssn.all_objects.get(device_id=request.REQUEST['DCOM_DEVICE_ID']) assn.user_type = 100 assn.save(request) result = practice_mgmt(request) self.assertEqual(result.status_code, 200) #post method and no practice request.method = 'POST' result = practice_mgmt(request) self.assertEqual(result.status_code, 400) #post method and have practice but not manager organization_type = create_org_type() practice = ct_practice('name', organization_type) request.POST['current_practice'] = practice.id result = practice_mgmt(request) self.assertEqual(result.status_code, 200) #post method and staff can not change current practice assn = SmartPhoneAssn.all_objects.get(device_id=request.REQUEST['DCOM_DEVICE_ID']) assn.user_type = 101 assn.save(request) result = practice_mgmt(request) self.assertEqual(result.status_code, 403) #post method and can change current practice assn = SmartPhoneAssn.all_objects.get(device_id=request.REQUEST['DCOM_DEVICE_ID']) assn.user_type = 1 assn.save(request) request.provider.practices.add(practice) result = practice_mgmt(request) self.assertEqual(result.status_code, 200)
def test_user_info(self): request = generateHttpRequest() #not find any provider match result = user_info(request, -123) self.assertEqual(result.status_code, 400) msg = json.loads(result.content) self.assertEqual(msg['errno'], 'PF001') #provider call this method result = user_info(request, request.user.id) self.assertEqual(result.status_code, 200) #physician call this method phy = Physician(user=request.provider) phy.save() result = user_info(request, request.user.id) self.assertEqual(result.status_code, 200) #staff call this method assn = SmartPhoneAssn.all_objects.get( device_id=request.REQUEST['DCOM_DEVICE_ID']) assn.user_type = 101 assn.save(request) staff = OfficeStaff(user=request.user) staff.save() result = user_info(request, request.user.id) self.assertEqual(result.status_code, 200) #staff with current practice organization_type = create_org_type() practice = ct_practice('name', organization_type) staff.current_practice = practice staff.save() result = user_info(request, request.user.id) self.assertEqual(result.status_code, 200) #manager call this method manager = Office_Manager(user=staff, practice=practice, manager_role=2) manager.save() result = user_info(request, request.user.id) self.assertEqual(result.status_code, 200)
def test_views_invites(self): request = generateHttpRequest() #an office staff login staff = OfficeStaff(user=request.user) staff.save() assn = SmartPhoneAssn.all_objects.get( device_id=request.REQUEST['DCOM_DEVICE_ID']) assn.user_type = 101 assn.save(request) result = list_invites(request) self.assertEqual(result.status_code, 403) #a provider login assn = SmartPhoneAssn.all_objects.get( device_id=request.REQUEST['DCOM_DEVICE_ID']) assn.user_type = 1 assn.save(request) #find 0 invitation result = list_invites(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(len(msg['data']['invitations']), 0) usertype = 1 #invite has assignPractice organization_type = create_org_type() practice = ct_practice('name', organization_type) code = '12345' email = '*****@*****.**' invite = Invitation(code=code, sender=request.user, recipient=email, userType=usertype, assignPractice=practice) invite.save() result = list_invites(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(len(msg['data']['invitations']), 1)
def test_practice_staff(self): request = generateHttpRequest() staff = OfficeStaff(user=request.user) staff.save() assn = SmartPhoneAssn.all_objects.get( device_id=request.REQUEST['DCOM_DEVICE_ID']) assn.user_type = 101 assn.save(request) #staff and has no current practice result = practice_staff(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(len(msg['data']['users']), 0) organization_type = create_org_type() practice = ct_practice('test', organization_type) staff.current_practice = practice #staff has current practice but has 0 staff find result = practice_staff(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(len(msg['data']['users']), 0) #staff has current practice but has 1 staff find staff.current_practice = practice staff.save() staff.practices.add(practice) manager = Office_Manager(user=staff, practice=practice, manager_role=2) manager.save() result = practice_staff(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(len(msg['data']['users']), 1) #return_python == True result = practice_staff(request, True) msg = result['data']['users'] self.assertEqual(len(msg), 1)
def test_acceptPracticeInvitation(self, start_thread): request = generateHttpRequest() #404 pending_id = 0 try: acceptPracticeInvitation(request, pending_id) except Http404: self.assertRaises( Http404('No Pending_Organization matches the given query.')) #success accpet a organization_type = create_org_type() practice = ct_practice('name', organization_type) pend = Pending_Association(from_user=request.user, to_user=request.user, practice_location=practice, created_time=datetime.datetime.now()) pend.save() result = acceptPracticeInvitation(request, pend.pk) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(msg['data'], {})
def test_get_dcom_number(self): request = generateHttpRequest() staff = OfficeStaff(user=request.user) staff.save() #a provider call this method result = get_dcom_number(request) self.assertEqual(result.status_code, 200) #a staff or manager call this method assn = SmartPhoneAssn.all_objects.get(device_id=request.REQUEST['DCOM_DEVICE_ID']) assn.user_type = 101 assn.save(request) result = get_dcom_number(request) self.assertEqual(result.status_code, 200) #has current_practice organization_type = create_org_type() practice = ct_practice('name', organization_type) staff.current_practice = practice staff.save() result = get_dcom_number(request) self.assertEqual(result.status_code, 200)
def test_get_all_providers_and_staffs(self): request = generateHttpRequest() #get method request.method = 'GET' result = get_all_providers_and_staffs(request) self.assertEqual(result.status_code, 400) msg = json.loads(result.content) self.assertEqual(msg['errno'], 'GE002') #post method request.method = 'POST' #find 0 any type user result = get_all_providers_and_staffs(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(len(msg['users']), 0) #has 1 nppa user = create_user('np1', 'abc', '', 'demo') provider = Provider(user=user, username='******', first_name='abc', last_name='', office_lat=0.0, office_longit=0.0) provider.save() nppa = NP_PA(user=provider) nppa.save() request.POST['name'] = unicode('abc') result = get_all_providers_and_staffs(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(len(msg['users']), 1) self.assertEqual(msg['users'][0]['first_name'], 'abc') phy = Physician(user=provider) phy.save() result = get_all_providers_and_staffs(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(len(msg['users']), 2) self.assertEqual(msg['users'][0]['first_name'], 'abc') #staff organization_type = create_org_type() practice = PracticeLocation(practice_name='test', practice_longit='0.1', practice_lat='0.0', mdcom_phone='8005550085', organization_type=organization_type) practice.save() staff = OfficeStaff(user=request.user, current_practice=practice) staff.save() staff.practices.add(practice) request.POST['name'] = unicode(request.user.first_name) result = get_all_providers_and_staffs(request) self.assertEqual(result.status_code, 200) self.assertEqual(len(msg['users']), 2) self.assertEqual(msg['users'][0]['first_name'], 'abc')
def test_new_invite(self): usertype = 1 email = '*****@*****.**' email2 = '*****@*****.**' email3 = '*****@*****.**' email4 = '*****@*****.**' request = generateHttpRequest() #get method request.method = 'GET' result = new_invite(request) self.assertEqual(result.status_code, 400) msg = json.loads(result.content) self.assertEqual(msg['errno'], 'GE002') #post method request.method = 'POST' #an office staff login staff = OfficeStaff(user=request.user) staff.save() assn = SmartPhoneAssn.all_objects.get( device_id=request.REQUEST['DCOM_DEVICE_ID']) assn.user_type = 101 assn.save(request) result = new_invite(request) self.assertEqual(result.status_code, 403) #a provider login assn = SmartPhoneAssn.all_objects.get( device_id=request.REQUEST['DCOM_DEVICE_ID']) assn.user_type = 1 assn.save(request) #invalid form data request.POST['email'] = email request.POST['note'] = '2sxc' request.POST['invite_user_type'] = usertype request.POST['invite_type'] = 'sfsdf' result = new_invite(request) self.assertEqual(result.status_code, 400) msg = json.loads(result.content) self.assertEqual(msg['errno'], 'GE031') #valid form data but invite type is 2 request.POST['email'] = email request.POST['note'] = 'test' request.POST['invite_user_type'] = usertype request.POST['invite_type'] = 2 result = new_invite(request) self.assertEqual(result.status_code, 403) request.user.email = email request.user.save() #valid form data but user not exist request.POST['invite_type'] = 1 result = new_invite(request) self.assertEqual(result.status_code, 400) msg = json.loads(result.content) self.assertEqual(msg['errno'], 'IN002') #valid form data and not exist email request.POST['email'] = '*****@*****.**' result = new_invite(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) id = Invitation.objects.all()[0].id self.assertEqual(msg['data']['id'], id) #manager and has current practice assn = SmartPhoneAssn.all_objects.get( device_id=request.REQUEST['DCOM_DEVICE_ID']) assn.user_type = 100 assn.save(request) request.POST['invite_type'] = 2 request.POST['email'] = email2 organization_type = create_org_type() practice = PracticeLocation(practice_name='test', practice_longit='0.1', practice_lat='0.0', mdcom_phone='8005550085', organization_type=organization_type) practice.save() user = OfficeStaff.objects.get(user=request.user) user.current_practice = practice user.save() result = new_invite(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) id = Invitation.objects.get(recipient=email2).id self.assertEqual(msg['data']['id'], id) #resend invitation invite = Invitation(sender=request.user, recipient=email, userType=usertype) invite.save() request.POST['email'] = email3 result = new_invite(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) id = Invitation.objects.get(recipient=email3).id self.assertEqual(msg['data']['id'], id) #user time setting request.POST['use_time_setting'] = True request.POST['email'] = email4 result = new_invite(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) id = Invitation.objects.get(recipient=email4).id self.assertEqual(msg['data']['id'], id)
def test_call(self): phone = '80012312321' request = generateHttpRequest() #user has no mobile phone result = call(request) self.assertEqual(result.status_code, 400) msg = json.loads(result.content) self.assertEqual(msg['errno'], 'TE005') #user has mobile phone user = MHLUser.objects.get(pk=request.user.pk) user.mobile_phone = phone user.save() #invlid form data request.POST['number'] = '' request.POST['caller_number'] = '' result = call(request) self.assertEqual(result.status_code, 400) msg = json.loads(result.content) self.assertEqual(msg['errno'], 'GE031') #valid form data assn = SmartPhoneAssn.all_objects.get( device_id=request.REQUEST['DCOM_DEVICE_ID']) assn.user_type = 1 assn.save(request) request.POST['number'] = '8005550056' request.POST['caller_number'] = '8005550056' result = call(request) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(msg['warnings'], {}) #user id and is 0 user_id = 0 result = call(request, user_id=user_id) self.assertEqual(result.status_code, 400) msg = json.loads(result.content) self.assertEqual(msg['errno'], 'GE010') #user_id and is not 0 username = '******' user = create_user(username, 'abc', 'def', 'demo') user_id = user.pk result = call(request, user_id=user_id) self.assertEqual(result.status_code, 400) msg = json.loads(result.content) self.assertEqual(msg['errno'], 'TE005') #user id and user hase mobile phone user = MHLUser.objects.get(username=username) user.mobile_phone = '8569854741' user.save() result = call(request, user_id=user_id) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(msg['warnings'], {}) #practice_id is 0 practice_id = 0 result = call(request, practice_id=practice_id) self.assertEqual(result.status_code, 400) msg = json.loads(result.content) self.assertEqual(msg['errno'], 'GE010') #practice id is not 0 organization_type = create_org_type() practice = ct_practice('name', organization_type) result = call(request, practice_id=practice.pk) self.assertEqual(result.status_code, 400) msg = json.loads(result.content) self.assertEqual(msg['errno'], 'TE006') #number is in kwargs number = '8001247841' result = call(request, number=number) self.assertEqual(result.status_code, 200) msg = json.loads(result.content) self.assertEqual(msg['warnings'], {})