コード例 #1
0
	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'])
コード例 #2
0
    def test_getCurrentPractice(self):
        practice = PracticeLocation(
            practice_name='test',
            practice_longit='0.1',
            practice_lat='0.0',
        )
        practice.save()
        user = create_user('practicemgr1', 'lin', 'xing', 'demo')

        #a mhluser login and call this method
        result = getCurrentPractice(user)
        self.assertEqual(result, '')

        #a provider login and call this method
        provider = Provider(username='******',
                            first_name='tes',
                            last_name="meister",
                            email='*****@*****.**',
                            user=user,
                            office_lat=0.0,
                            office_longit=0.0)
        provider.current_practice = practice
        provider.save()

        result = getCurrentPractice(user)
        self.assertEqual(result, 'test')

        #a staff login and call this method
        staff = OfficeStaff(user=user)
        staff.current_practice = practice
        staff.save()
        result = getCurrentPractice(user)
        self.assertEqual(result, 'test')
コード例 #3
0
	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)
コード例 #4
0
ファイル: test_utils.py プロジェクト: DongHuaLu/mdcom
	def setUp(self):
		clean_db_datas()

		org_setting = OrganizationSetting()
		org_setting.save()
		org_type = OrganizationType(name="Test Org Type", organization_setting=org_setting, is_public=True)
		org_type.save()
		self.org = create_organization()

		user1 = create_user(get_random_username(), 'Test1', 'S', 'demo')
		staff1 = OfficeStaff()
		staff1.user = user1
		staff1.office_lat = 0.0
		staff1.office_longit = 0.0
		staff1.current_practice = self.org
		staff1.save()
		staff1.practices.add(self.org)
		self.manager = Office_Manager(user=staff1, practice=self.org, manager_role=1)

		user = create_user(get_random_username(), 'Test1', 'S', 'demo')
		staff = OfficeStaff()
		staff.user = user
		staff.office_lat = 0.0
		staff.office_longit = 0.0
		staff.save()
		self.staff = staff
		
		self.provider = create_user("Pravider2", 'Provider', 'P', 'demo', uklass=Provider)
		self.provider.save()
コード例 #5
0
ファイル: test_utils.py プロジェクト: cnzhuran/mdcom
    def test_can_user_manage_this_org(self):
        user = create_user(get_random_username(), 'yang', 'peng', 'demo')
        admin = Administrator(user=user)
        admin.save()
        self.assertTrue(
            can_user_manage_this_org(self.organization.id,
                                     admin.user.id)["can_manage_org"])

        self.user = create_user(get_random_username(), 'yang', 'peng', 'demo')
        staff = OfficeStaff()
        staff.user = self.user
        staff.office_lat = 0.0
        staff.office_longit = 0.0
        staff.current_practice = self.organization
        staff.save()
        staff.practices.add(self.organization)
        self.assertFalse(
            can_user_manage_this_org(self.organization.id,
                                     staff.user.id)["can_manage_org"])

        Office_Manager.objects.create(user=staff,
                                      practice=self.organization,
                                      manager_role=1)
        self.assertTrue(
            can_user_manage_this_org(self.organization.id,
                                     staff.user.id)["can_manage_org"])
コード例 #6
0
ファイル: test_views_member.py プロジェクト: DongHuaLu/mdcom
	def setUpClass(cls):
		clean_db_datas()
		cls.user = create_user('practicemgr1', 'lin', 'xing', 'demo')

		practice = PracticeLocation(practice_name='test',
								practice_longit='0.1',
								practice_lat='0.0',)
		practice.save()
		practice1 = PracticeLocation(practice_name='test1',
								practice_longit='0.1',
								practice_lat='0.0',)
		practice1.save()
		
		OrganizationRelationship.objects.create(organization=practice,\
				parent=practice1,create_time=int(time.time()),billing_flag=True)
		cls.practice = practice
		cls.practice1 = practice1
		staff = OfficeStaff()
		staff.user = cls.user
		staff.office_lat = 0.0
		staff.office_longit = 0.0
		staff.current_practice = practice
		staff.save()
		staff.practices.add(practice)
		
		mgr = Office_Manager(user=staff, practice=practice, manager_role=2)
		mgr.save()
コード例 #7
0
ファイル: test_utils.py プロジェクト: cnzhuran/mdcom
    def setUp(self):
        clean_db_datas()
        self.user = create_user(get_random_username(), 'yang', 'peng', 'demo')
        self.organization = create_organization()
        self.parent_organization = create_parent_organization()
        self.organization.save_parent_org(parent_org=self.parent_organization)
        staff = OfficeStaff()
        staff.user = self.user
        staff.office_lat = 0.0
        staff.office_longit = 0.0
        staff.current_practice = self.organization
        staff.save()
        staff.practices.add(self.organization)

        mgr = Office_Manager(user=staff,
                             practice=self.organization,
                             manager_role=2)
        mgr.save()

        self.provider = create_user(get_random_username(),
                                    "doc",
                                    "holiday",
                                    "demo",
                                    uklass=Provider)
        self.provider.current_practice = self.parent_organization
        self.provider.save()
        self.provider.practices.add(self.parent_organization)
コード例 #8
0
ファイル: test_utils.py プロジェクト: DongHuaLu/mdcom
	def test_getCurrentPractice(self):
		practice = PracticeLocation(practice_name='test',
								practice_longit='0.1',
								practice_lat='0.0',)
		practice.save()
		user = create_user('practicemgr1', 'lin', 'xing', 'demo')
		
		#a mhluser login and call this method
		result = getCurrentPractice(user)
		self.assertEqual(result, '')
		
		#a provider login and call this method
		provider = Provider(username='******', first_name='tes', last_name="meister", email='*****@*****.**',
					user=user, office_lat=0.0, office_longit=0.0)
		provider.current_practice = practice
		provider.save()
		
		result = getCurrentPractice(user)
		self.assertEqual(result, 'test')
		
		#a staff login and call this method
		staff = OfficeStaff(user=user)
		staff.current_practice = practice
		staff.save()
		result = getCurrentPractice(user)
		self.assertEqual(result, 'test')
コード例 #9
0
    def test_getPenddings(self):
        staff = OfficeStaff(user=self.user)
        staff.current_practice = self.practice
        staff.save()
        staff.practices.add(self.practice)
        manager = Office_Manager(user=staff,
                                 practice=self.practice,
                                 manager_role=2)
        manager.save()

        response = self.client.post(
            reverse('MHLogin.MHLPractices.views.getPenddings'))
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(len(msg), 0)

        pend = Pending_Association(from_user=self.user,
                                   to_user=self.user,
                                   practice_location=self.practice,
                                   created_time=datetime.datetime.now())
        pend.save()

        response = self.client.post(
            reverse('MHLogin.MHLPractices.views.getPenddings'))
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(len(msg), 1)
コード例 #10
0
    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)
コード例 #11
0
ファイル: test_views.py プロジェクト: DongHuaLu/mdcom
	def setUpClass(cls):
		clean_db_datas()
		cls.user = create_user('practicemgr1', 'lin', 'xing', 'demo')
		cls.user1 = create_user('practicemgr11', 'y', 'p', 'demo')

		cls.broker = create_user("broker1", "bro", "1", "demo", 
							"123 Main St.", "Phoenix", "AZ", uklass=Broker)

		practice = PracticeLocation(practice_name='test',
								practice_longit='0.1',
								practice_lat='0.0',)
		practice.save()
		practice1 = PracticeLocation(practice_name='test1',
								practice_longit='0.1',
								practice_lat='0.0',)
		practice1.save()

		OrganizationRelationship.objects.create(organization=practice,\
			parent=practice1, create_time=int(time.time()), billing_flag=True)

		cls.practice = practice
		staff = OfficeStaff()
		staff.user = cls.user
		staff.office_lat = 0.0
		staff.office_longit = 0.0
		staff.current_practice = practice
		staff.save()
		staff.practices.add(practice)

		cls.provider = Provider(user=cls.user1, office_lat=0.0, office_longit=0.0, current_practice = practice)
		cls.provider.mdcom_phone = '5948949899' 
		cls.provider.save()
#		
		mgr = Office_Manager(user=staff, practice=practice, manager_role=2)
		mgr.save()
コード例 #12
0
ファイル: test_views.py プロジェクト: DongHuaLu/mdcom
	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)
コード例 #13
0
	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)
コード例 #14
0
    def test_addProviderToPractice(self, start_thread):
        #user is a manager
        staff = OfficeStaff(user=self.user)
        staff.current_practice = self.practice
        staff.save()
        staff.practices.add(self.practice)
        manager = Office_Manager(user=staff,
                                 practice=self.practice,
                                 manager_role=2)
        manager.save()

        #invalid assoc id
        assocID = {'assoc_id': 'a'}
        response = self.client.post(
            reverse('MHLogin.MHLPractices.views_ajax.addProviderToPractice'),
            data=assocID)
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(msg['err'], _('A server error has occurred.'))

        #valid assoc id
        to_user = create_user(
            'p2',
            'lin2',
            'xing2',
            'demo',
            '',
            '',
            '',
            '',
        )
        provider = Provider(username='******',
                            first_name='first',
                            last_name="last",
                            email='*****@*****.**',
                            user=self.user,
                            office_lat=0.0,
                            office_longit=0.0)
        provider.save()
        pend = Pending_Association(from_user=self.user,
                                   to_user=to_user,
                                   practice_location=self.practice,
                                   created_time=datetime.datetime.now())
        pend.save()
        assocID = {'assoc_id': pend.id}
        response = self.client.post(
            reverse('MHLogin.MHLPractices.views_ajax.addProviderToPractice'),
            data=assocID)
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(msg, 'ok')
        self.assertEqual(
            Log_Association.objects.get(association_id=pend.id).action, 'ACC')
        self.assertEqual(Pending_Association.objects.count(), 0)
        self.assertEqual(
            self.practice
            in Provider.objects.get(pk=provider.pk).practices.all(), True)
        mems = CallGroupMember.objects.filter(call_group=self.call_group)
        self.assertEqual(len(mems), 1)
コード例 #15
0
ファイル: test_views_member.py プロジェクト: DongHuaLu/mdcom
	def setUpClass(cls):
		clean_db_datas()
		cls.call_group = CallGroup.objects.create(description='test', team='team')
		cls.user = create_user('practicemgr1', 'lin', 'xing', 'demo')
		cls.user1 = create_user('practicemgr2', 'yang', 'peng', 'demo')
		cls.user2 = create_user('practicemgr234', 'yang1', 'peng1', 'demo')

		practice = PracticeLocation(practice_name='test',
								practice_longit='0.1',
								practice_lat='0.0',
								call_group = cls.call_group,)
		practice.save()
		practice1 = PracticeLocation(practice_name='test1',
								practice_longit='0.1',
								practice_lat='0.0',
								call_group = cls.call_group,)
		practice1.save()
		
		OrganizationRelationship.objects.create(organization=practice,\
				parent=practice1,create_time=int(time.time()),billing_flag=True)
		cls.practice = practice
		cls.practice1 = practice1
		
		provider = Provider(user=cls.user1, office_lat=0.0, office_longit=0.0, current_practice = practice)
		provider.save()
		provider.practices.add(practice)
		provider.practices.add(practice1)
		cls.provider = provider
		
		cls.provider2 = Provider(username="******", first_name="doc", 
								last_name="holiday", office_lat=0.0, office_longit=0.0)
		cls.provider2.set_password("holiday")
		cls.provider2.save()
		VMBox_Config(owner=cls.provider2).save()
		
		staff = OfficeStaff()
		staff.user = cls.user
		staff.office_lat = 0.0
		staff.office_longit = 0.0
		staff.current_practice = practice
		staff.save()
		staff.practices.add(practice)
		
		cls.event = EventEntry(creator=cls.user,
						oncallPerson=cls.user1,
						callGroup=cls.call_group,
						startDate=datetime.datetime(2012, 12, 1),
						endDate=datetime.datetime.now()+datetime.timedelta(days = 2),
						title='test event',
						oncallLevel='0',
						eventStatus=1,
						checkString='abc'
						)
		cls.event.save()
		mgr = Office_Manager(user=staff, practice=practice, manager_role=2)
		mgr.save()
		generate_keys_for_users(output=DevNull())
コード例 #16
0
    def test_practice_profile_edit_staff(self):
        staff = OfficeStaff(user=self.user)
        staff.current_practice = self.practice
        staff.save()
        staff.practices.add(self.practice)
        staff.save()

        response = self.client.post(
            reverse('MHLogin.MHLPractices.views.practice_profile_edit'))
        self.assertEqual(response.status_code, 403)
コード例 #17
0
ファイル: test_views.py プロジェクト: DongHuaLu/mdcom
	def test_getPrintableSchedule(self):
		#not a staff login and call this method
		#a staff login
		staff = OfficeStaff(user=self.user)
		staff.save()
		staff.practices.add(self.practice)
		staff.current_practice = self.practice
		staff.save()
		response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views.getPrintableSchedule'))
		self.assertEqual(response.status_code, 403)
コード例 #18
0
    def test_rejectAssociation(self):
        #user is a manager
        staff = OfficeStaff(user=self.user)
        staff.current_practice = self.practice
        staff.save()
        staff.practices.add(self.practice)
        manager = Office_Manager(user=staff,
                                 practice=self.practice,
                                 manager_role=2)
        manager.save()

        #invalid assoc id
        assocID = {'assoc_id': 'a'}
        response = self.client.post(
            reverse('MHLogin.MHLPractices.views_ajax.rejectAssociation'),
            data=assocID)
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(
            msg['err'], _('The data is error. Please refresh the page again.'))

        #valid assoc id
        to_user = create_user(
            'p2',
            'lin2',
            'xing2',
            'demo',
            '',
            '',
            '',
            '',
        )
        provider = Provider(username='******',
                            first_name='first',
                            last_name="last",
                            email='*****@*****.**',
                            user=self.user,
                            office_lat=0.0,
                            office_longit=0.0)
        provider.save()
        pend = Pending_Association(from_user=self.user,
                                   to_user=to_user,
                                   practice_location=self.practice,
                                   created_time=datetime.datetime.now())
        pend.save()
        assocID = {'assoc_id': pend.id}
        response = self.client.post(
            reverse('MHLogin.MHLPractices.views_ajax.rejectAssociation'),
            data=assocID)
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(msg, 'OK')
        self.assertEqual(
            Log_Association.objects.get(association_id=pend.id).action, 'REJ')
        self.assertEqual(Pending_Association.objects.count(), 0)
コード例 #19
0
    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)
コード例 #20
0
 def test_getPrintableSchedule(self):
     #not a staff login and call this method
     #a staff login
     staff = OfficeStaff(user=self.user)
     staff.save()
     staff.practices.add(self.practice)
     staff.current_practice = self.practice
     staff.save()
     response = self.client.post(
         reverse(
             'MHLogin.MHLCallGroups.Scheduler.views.getPrintableSchedule'))
     self.assertEqual(response.status_code, 403)
コード例 #21
0
    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)
コード例 #22
0
    def test_rulesCheck(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
        startDate = datetime.datetime.now() + datetime.timedelta(days=2)
        endDate = datetime.datetime.now() + datetime.timedelta(days=3)
        event = EventEntry(creator=self.user,
                           oncallPerson=provider,
                           callGroup=self.call_group,
                           startDate=startDate,
                           endDate=endDate,
                           title='test event',
                           oncallLevel='0',
                           eventStatus=1,
                           checkString=checkString)
        event.save()

        #get method
        response = self.client.get(
            reverse('MHLogin.MHLCallGroups.Scheduler.views.rulesCheck',
                    args=(self.call_group.id, )))
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, 'DateEntry.html')

        #post method
        data = {
            'fromDate': '2012-12-10 12:00:00',
            'toDate': '2012-12-14 12:00:00'
        }
        response = self.client.post(reverse(
            'MHLogin.MHLCallGroups.Scheduler.views.rulesCheck',
            args=(self.call_group.id, )),
                                    data=data)
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(msg[0].find('warning hole in coverage '), 0)
コード例 #23
0
ファイル: test_views_users.py プロジェクト: DongHuaLu/mdcom
	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)
コード例 #24
0
    def test_staffHome(self):
        staff = OfficeStaff(user=self.user)
        staff.current_practice = self.practice
        staff.save()
        staff.practices.add(self.practice)
        manager = Office_Manager(user=staff,
                                 practice=self.practice,
                                 manager_role=2)
        manager.save()

        response = self.client.post(
            reverse('MHLogin.MHLPractices.views.staffHome'))
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, 'Staff/staffHome.html')
コード例 #25
0
ファイル: utils.py プロジェクト: cnzhuran/mdcom
    def setUp(self):
        clean_db_datas()
        self.temp_CALL_ENABLE = settings.CALL_ENABLE
        self.temp_SEND_MAXIMUM_PER_DAY = settings.SEND_MAXIMUM_PER_DAY
        self.temp_SEND_CODE_WAITING_TIME = settings.SEND_CODE_WAITING_TIME
        self.temp_FAIL_VALIDATE_MAXIMUM_PER_HOUR = settings.FAIL_VALIDATE_MAXIMUM_PER_HOUR
        self.temp_VALIDATE_LOCK_TIMEE = settings.VALIDATE_LOCK_TIME

        settings.SEND_MAXIMUM_PER_DAY = 5
        settings.SEND_CODE_WAITING_TIME = 2
        settings.FAIL_VALIDATE_MAXIMUM_PER_HOUR = 3
        settings.VALIDATE_LOCK_TIME = 2

        self.provider = create_user(get_random_username(),
                                    "yang",
                                    "peng",
                                    "demo",
                                    uklass=Provider)
        self.provider.mobile_phone = '9563322588'
        self.provider.mobile_confirmed = True
        self.provider.email = '*****@*****.**'
        self.provider.email_confirmed = True
        self.provider.save()

        self.organization = create_organization()
        self.user = create_user(get_random_username(), "yang", "peng", "demo")
        staff = OfficeStaff()
        staff.user = self.user
        staff.pager = '9985622456'
        staff.office_lat = 0.0
        staff.office_longit = 0.0
        staff.current_practice = self.organization
        staff.save()
        self.staff = staff

        self.user_bro = create_user(get_random_username(), "yang", "peng",
                                    "demo")
        self.broker = Broker()
        self.broker.pager = '9985622456'
        self.broker.user = self.user_bro
        self.broker.office_lat = 0.0
        self.broker.office_longit = 0.0
        self.broker.save()

        self.user = create_user(get_random_username(), "yang", "peng", "demo")
        self.user.mobile_phone = '9563322488'
        self.user.mobile_confirmed = True
        self.user.email_confirmed = True
        self.user.save()
コード例 #26
0
    def test_practice_profile_edit_manager(self):
        staff = OfficeStaff(user=self.user)
        staff.current_practice = self.practice
        staff.save()
        staff.practices.add(self.practice)

        manager = Office_Manager(user=staff,
                                 practice=self.practice,
                                 manager_role=1)
        manager.save()

        response = self.client.get(
            reverse('MHLogin.MHLPractices.views.practice_profile_edit'))
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, 'Profile/practice_profile_edit.html')
コード例 #27
0
ファイル: test_views.py プロジェクト: cnzhuran/mdcom
	def test_pratice_info(self):
		self.client.post('/login/', {'username': self.user.username,
			'password': '******'})
		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()

		response = self.client.get(reverse('MHLogin.DoctorCom.views.practice_info'))
		self.assertEqual(response.status_code, 200)
		self.assertTemplateUsed(response, 'MHLUsers/practice_info.html')
		self.client.logout()
コード例 #28
0
ファイル: test_views.py プロジェクト: cnzhuran/mdcom
    def setUpClass(cls):
        clean_db_datas()
        cls.user = create_user('practicemgr1', 'lin', 'xing', 'demo')
        cls.user1 = create_user('practicemgr11', 'y', 'p', 'demo')

        cls.broker = create_user("broker1",
                                 "bro",
                                 "1",
                                 "demo",
                                 "123 Main St.",
                                 "Phoenix",
                                 "AZ",
                                 uklass=Broker)

        practice = PracticeLocation(
            practice_name='test',
            practice_longit='0.1',
            practice_lat='0.0',
        )
        practice.save()
        practice1 = PracticeLocation(
            practice_name='test1',
            practice_longit='0.1',
            practice_lat='0.0',
        )
        practice1.save()

        OrganizationRelationship.objects.create(organization=practice,\
         parent=practice1, create_time=int(time.time()), billing_flag=True)

        cls.practice = practice
        staff = OfficeStaff()
        staff.user = cls.user
        staff.office_lat = 0.0
        staff.office_longit = 0.0
        staff.current_practice = practice
        staff.save()
        staff.practices.add(practice)

        cls.provider = Provider(user=cls.user1,
                                office_lat=0.0,
                                office_longit=0.0,
                                current_practice=practice)
        cls.provider.mdcom_phone = '5948949899'
        cls.provider.save()
        #
        mgr = Office_Manager(user=staff, practice=practice, manager_role=2)
        mgr.save()
コード例 #29
0
    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'], '')
コード例 #30
0
ファイル: test_utils.py プロジェクト: DongHuaLu/mdcom
	def test_can_user_manage_org_module(self):
		user = create_user(get_random_username(),'yang','peng','demo')
		admin = Administrator(user=user)
		self.assertTrue(can_user_manage_org_module(admin.user.id))

		user1 = create_user(get_random_username(),'yang','peng','demo')
		staff = OfficeStaff()
		staff.user = user1
		staff.office_lat = 0.0
		staff.office_longit = 0.0
		staff.current_practice = self.organization
		staff.save()
		staff.practices.add(self.organization)
		self.assertFalse(can_user_manage_org_module(staff.user.id)["can_manage_org"])

		Office_Manager.objects.create(user=staff, practice=self.organization, manager_role=1)
		self.assertTrue(can_user_manage_org_module(staff.user.id)["can_manage_org"])
コード例 #31
0
ファイル: test_views_member.py プロジェクト: DongHuaLu/mdcom
	def setUpClass(cls):
		clean_db_datas()
		cls.user = create_user(get_random_username(), 'lin', 'xing', 'demo')
		cls.user1 = create_user(get_random_username(), 'y', 'p', 'demo')
		cls.user2 = create_user(get_random_username(), 'y', 'p', 'demo')
		cls.to_user = create_user(get_random_username(), "tian", "thj", "demo", "555 Bryant St.",
								"Palo Alto", "CA", "")

		practice = PracticeLocation(practice_name='test',
								practice_longit='0.1',
								practice_lat='0.0',)
		practice.save()
		practice1 = PracticeLocation(practice_name='test1',
								practice_longit='0.1',
								practice_lat='0.0',)
		practice1.save()
		
		OrganizationRelationship.objects.create(organization=practice,\
				parent=practice1,create_time=int(time.time()),billing_flag=True)
		cls.practice = practice
		cls.practice1 = practice1
		
		assoc = Pending_Association()
		assoc.from_user = cls.user1
		assoc.to_user = cls.to_user
		assoc.practice_location = practice
		assoc.created_time = datetime.datetime(2013, 5, 14, 12, 30)
		assoc.resent_time = datetime.datetime(2013, 5, 14, 13, 30)
		assoc.save()
		cls.assoc = assoc
		
		provider = Provider(user=cls.to_user, office_lat=0.0, office_longit=0.0, current_practice = practice)
		provider.save()
		cls.provider = provider
		
		staff = OfficeStaff()
		staff.user = cls.user
		staff.office_lat = 0.0
		staff.office_longit = 0.0
		staff.current_practice = practice
		staff.save()
		staff.practices.add(practice)
		
		mgr = Office_Manager(user=staff, practice=practice, manager_role=2)
		mgr.save()
コード例 #32
0
    def test_practice_main_view(self):
        #403
        #		response = self.client.post(reverse('MHLogin.MHLPractices.views.practice_main_view'))
        #		self.assertEqual(response.status_code, 403)

        staff = OfficeStaff(user=self.user)
        staff.save()
        staff.practices.add(self.practice)

        #staff no current practice
        response = self.client.post(
            reverse('MHLogin.MHLPractices.views.practice_main_view'))
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, 'dashboard_office_staff.html')

        #staff and current practice
        staff.current_practice = self.practice
        staff.save()
        response = self.client.post(
            reverse('MHLogin.MHLPractices.views.practice_main_view'))
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, 'dashboard_office_staff.html')

        #manger
        manager = Office_Manager(user=staff,
                                 practice=self.practice,
                                 manager_role=2)
        manager.save()

        response = self.client.post(
            reverse('MHLogin.MHLPractices.views.practice_main_view'))
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, 'dashboard_office_manager.html')

        #manager and current site
        site = Site(name='test site',
                    address1='test address',
                    lat='0.4',
                    longit='4.1')
        staff.current_site = site
        staff.save()
        response = self.client.post(
            reverse('MHLogin.MHLPractices.views.practice_main_view'))
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, 'dashboard_office_manager.html')
コード例 #33
0
	def test_addPrvoderIn(self):
		prov = Provider(username='******', first_name='tes', last_name="meister", email='*****@*****.**',
					office_lat=0.0, office_longit=0.0)
		prov.save()
		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()

		data = {'to_user': prov.id}
		response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.addPrvoderIn', 
			args=(self.practice.id, self.group.id)), data=data)
		msg = json.loads(response.content)
		self.assertEqual(response.status_code, 200)
		self.assertEqual(0, msg['err'].find('Congratulations'))
コード例 #34
0
ファイル: test_utils.py プロジェクト: DongHuaLu/mdcom
	def test_get_orgs_I_can_manage_user(self):
		user = create_user('yangpeng','yang','peng','demo')
		org_setting = OrganizationSetting()
		org_setting.save()
		org_type = OrganizationType(name="Test Org Type", \
				organization_setting=org_setting, is_public=True)
		org_type.save()
		staff = OfficeStaff()
		staff.user = user
		staff.office_lat = 0.0
		staff.office_longit = 0.0
		staff.current_practice = self.organization
		staff.save()
		staff.practices.add(self.organization)
		mgr = Office_Manager(user=staff, practice=self.organization, manager_role=2)
		mgr.save()
		get_orgs_I_can_manage(mgr.id,parent_id=self.parent_organization.id,\
				org_type_id=org_type.id,clear_no_type_org=True)
コード例 #35
0
ファイル: utils.py プロジェクト: DongHuaLu/mdcom
	def setUp(self):
		clean_db_datas()
		self.temp_CALL_ENABLE = settings.CALL_ENABLE
		self.temp_SEND_MAXIMUM_PER_DAY = settings.SEND_MAXIMUM_PER_DAY
		self.temp_SEND_CODE_WAITING_TIME = settings.SEND_CODE_WAITING_TIME
		self.temp_FAIL_VALIDATE_MAXIMUM_PER_HOUR = settings.FAIL_VALIDATE_MAXIMUM_PER_HOUR
		self.temp_VALIDATE_LOCK_TIMEE = settings.VALIDATE_LOCK_TIME

		settings.SEND_MAXIMUM_PER_DAY = 5
		settings.SEND_CODE_WAITING_TIME = 2
		settings.FAIL_VALIDATE_MAXIMUM_PER_HOUR = 3
		settings.VALIDATE_LOCK_TIME = 2

		self.provider = create_user(get_random_username(), "yang", "peng", "demo",uklass=Provider)
		self.provider.mobile_phone = '9563322588'
		self.provider.mobile_confirmed = True
		self.provider.email = '*****@*****.**'
		self.provider.email_confirmed =True
		self.provider.save()
		
		self.organization = create_organization()
		self.user = create_user(get_random_username(), "yang", "peng", "demo")
		staff = OfficeStaff()
		staff.user = self.user
		staff.pager = '9985622456'
		staff.office_lat = 0.0
		staff.office_longit = 0.0
		staff.current_practice = self.organization
		staff.save()
		self.staff = staff
		
		self.user_bro = create_user(get_random_username(), "yang", "peng", "demo")
		self.broker = Broker()
		self.broker.pager = '9985622456'
		self.broker.user = self.user_bro
		self.broker.office_lat = 0.0
		self.broker.office_longit = 0.0
		self.broker.save()
		
		self.user = create_user(get_random_username(), "yang", "peng", "demo")
		self.user.mobile_phone = '9563322488'
		self.user.mobile_confirmed = True
		self.user.email_confirmed =True
		self.user.save()
コード例 #36
0
	def test_rulesCheck(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
		timenow = datetime.datetime.now()
		startDate = timenow + datetime.timedelta(days=2)
		endDate = timenow + datetime.timedelta(days=3)
		event = EventEntry(creator=self.user,
						oncallPerson=provider,
						callGroup=self.call_group,
						startDate=startDate,
						endDate=endDate,
						title='test event',
						oncallLevel='0',
						eventStatus=1,
						checkString=checkString
						)
		event.save()

		#get method
		response = self.client.get(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.rulesCheck', 
			args=(self.practice.id, self.call_group.id)))
		self.assertEqual(response.status_code, 200)
		self.assertTemplateUsed(response, 'DateEntry.html')

		#post method
		data = {'fromDate': '2012-12-10 12:00:00', 'toDate': '2012-12-14 12:00:00'}
		response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.rulesCheck', 
			args=(self.practice.id, self.call_group.id)), data=data)
		self.assertEqual(response.status_code, 200)
		msg = json.loads(response.content)
		start = datetime.datetime.now()
		end = start + datetime.timedelta(days=14)
		self.assertTrue('warning hole in coverage' in msg[0])
コード例 #37
0
ファイル: test_views.py プロジェクト: cnzhuran/mdcom
    def setUpClass(cls):
        clean_db_datas()
        cls.user = create_user('practicemgr1', 'lin', 'xing', 'demo')
        org_setting = OrganizationSetting()
        org_setting.save()
        org_type = OrganizationType(name="Test Org Type",
                                    organization_setting=org_setting,
                                    is_public=True)
        org_type.save()
        cls.org_type = org_type
        sub_types = create_multiple_organization_types(org_type)
        cls.sub_types = sub_types

        practice = PracticeLocation(
            practice_name='test',
            practice_longit='0.1',
            practice_lat='0.0',
            organization_type=org_type,
        )
        practice.save()
        practice1 = PracticeLocation(
            practice_name='test1',
            practice_longit='0.1',
            practice_lat='0.0',
            organization_type=org_type,
        )
        practice1.save()
        OrganizationRelationship.objects.create(organization=practice,
                                                parent=practice1,
                                                create_time=int(time.time()),
                                                billing_flag=True)
        cls.practice = practice
        cls.practice1 = practice1

        staff = OfficeStaff()
        staff.user = cls.user
        staff.office_lat = 0.0
        staff.office_longit = 0.0
        staff.current_practice = practice
        staff.save()
        staff.practices.add(practice)

        mgr = Office_Manager(user=staff, practice=practice, manager_role=2)
        mgr.save()
コード例 #38
0
    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)
コード例 #39
0
    def test_cancelExistInvitation(self):
        #user is a manager
        staff = OfficeStaff(user=self.user)
        staff.current_practice = self.practice
        staff.save()
        staff.practices.add(self.practice)
        manager = Office_Manager(user=staff,
                                 practice=self.practice,
                                 manager_role=2)
        manager.save()

        #get method
        response = self.client.get(
            reverse('MHLogin.MHLPractices.views_ajax.cancelExistInvitation'))
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(msg[1], _('A server error has occured.'))

        email = '*****@*****.**'
        user_type = 1
        invite = Invitation(sender=self.user,
                            recipient=email,
                            assignPractice=self.practice,
                            userType=user_type)
        invite.save()

        #there is no invite find
        data = {'email': '*****@*****.**', 'type': '0'}
        response = self.client.post(
            reverse('MHLogin.MHLPractices.views_ajax.cancelExistInvitation'),
            data=data)
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(msg[1], _('A server error has occured.'))

        data = {'email': email, 'type': user_type}
        response = self.client.post(
            reverse('MHLogin.MHLPractices.views_ajax.cancelExistInvitation'),
            data=data)
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(msg[0], 'ok')
        self.assertEqual(Invitation.objects.count(), 0)
コード例 #40
0
    def test_addAssociation(self):
        #user is a manager
        staff = OfficeStaff(user=self.user)
        staff.current_practice = self.practice
        staff.save()
        staff.practices.add(self.practice)
        manager = Office_Manager(user=staff,
                                 practice=self.practice,
                                 manager_role=2)
        manager.save()

        #provider id
        user = create_user(
            'p',
            'lin2',
            'xing2',
            'demo',
            '',
            '',
            '',
            '',
        )
        provider = Provider(username='******',
                            first_name='first',
                            last_name="last",
                            email='*****@*****.**',
                            user=user,
                            office_lat=0.0,
                            office_longit=0.0)
        provider.save()

        data = {'prov_id': provider.user.id, 'userType': 1}
        response = self.client.post(
            reverse('MHLogin.MHLPractices.views_ajax.addAssociation'), data)
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(msg[0], 'ok')
        self.assertEqual(Pending_Association.objects.count(), 1)
        self.assertEqual(
            Pending_Association.objects.get(to_user=provider.user).from_user,
            self.user)
        self.assertEqual(Log_Association.objects.count(), 1)
コード例 #41
0
ファイル: test_views_users.py プロジェクト: DongHuaLu/mdcom
	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)
コード例 #42
0
ファイル: test_utils.py プロジェクト: cnzhuran/mdcom
 def test_get_orgs_I_can_manage_user(self):
     user = create_user('yangpeng', 'yang', 'peng', 'demo')
     org_setting = OrganizationSetting()
     org_setting.save()
     org_type = OrganizationType(name="Test Org Type", \
       organization_setting=org_setting, is_public=True)
     org_type.save()
     staff = OfficeStaff()
     staff.user = user
     staff.office_lat = 0.0
     staff.office_longit = 0.0
     staff.current_practice = self.organization
     staff.save()
     staff.practices.add(self.organization)
     mgr = Office_Manager(user=staff,
                          practice=self.organization,
                          manager_role=2)
     mgr.save()
     get_orgs_I_can_manage(mgr.id,parent_id=self.parent_organization.id,\
       org_type_id=org_type.id,clear_no_type_org=True)
コード例 #43
0
ファイル: test_views_member.py プロジェクト: DongHuaLu/mdcom
	def setUpClass(cls):
		clean_db_datas()
		cls.user = create_user('practicemgr1', 'lin', 'xing', 'demo')
		cls.admin = create_user("sduper", "super", "duper", "demo", 
							"Ocean Avenue", "Carmel", "CA", "93921", uklass=Administrator)
		cls.admin.save()
		org_setting = OrganizationSetting(can_have_manager=True,\
						can_have_nurse=True,can_have_dietician=True)
		org_setting.save()
		org_type = OrganizationType(name="Test Org Type", \
						organization_setting=org_setting, is_public=True)
		org_type.save()
		cls.org_type = org_type
		cls.org_setting = org_setting
		
		practice = PracticeLocation(practice_name='test',
								practice_longit='0.1',
								practice_lat='0.0',
								organization_setting =org_setting,
								organization_type = org_type)
		practice.save()
		practice1 = PracticeLocation(practice_name='test1',
								practice_longit='0.1',
								practice_lat='0.0',
								organization_setting =org_setting,
								organization_type = org_type)
		practice1.save()
		cls.practice = practice
		cls.practice1 = practice1
		
		staff = OfficeStaff()
		staff.user = cls.user
		staff.office_lat = 0.0
		staff.office_longit = 0.0
		staff.current_practice = practice
		staff.save()
		staff.practices.add(practice)
		cls.staff = staff
		
		mgr = Office_Manager(user=staff, practice=practice, manager_role=2)
		mgr.save()
コード例 #44
0
ファイル: test_views_member.py プロジェクト: DongHuaLu/mdcom
	def setUpClass(cls):
		clean_db_datas()
		cls.user = create_user('practicemgr1', 'lin', 'xing', 'demo')
		cls.user1 = create_user('practicemgr2', 'yang', 'peng', 'demo')

		practice = PracticeLocation(practice_name='test',
								practice_longit='0.1',
								practice_lat='0.0',)
		practice.save()
		practice1 = PracticeLocation(practice_name='test1',
								practice_longit='0.1',
								practice_lat='0.0',)
		practice1.save()
		
		OrganizationRelationship.objects.create(organization=practice,\
				parent=practice1,create_time=int(time.time()),billing_flag=True)
		cls.practice = practice
		cls.practice1 = practice1
		staff = OfficeStaff()
		staff.user = cls.user
		staff.office_lat = 0.0
		staff.office_longit = 0.0
		staff.current_practice = practice
		staff.save()
		staff.practices.add(practice)
		cls.staff = staff
		
		cls.content_type=ContentType.objects.get_for_model(cls.user1)
		try:
			perm = Permission.objects.get(codename='access_smartphone',\
					name='Can use smartphone app', \
					content_type=ContentType.objects.get_for_model(MHLUser))
			staff.user.user_permissions.remove(perm)
			staff.save()
		except:
			with cls.assertRaises(Permission.DoesNotExist):\
					Permission.objects.get(codename='access_smartphone',\
					name='Can use smartphone app', \
					content_type=ContentType.objects.get_for_model(MHLUser))
		mgr = Office_Manager(user=staff, practice=practice, manager_role=2)
		mgr.save()
コード例 #45
0
ファイル: test_utils.py プロジェクト: DongHuaLu/mdcom
	def setUp(self):
		clean_db_datas()
		self.user = create_user(get_random_username(),'yang','peng','demo')
		self.organization = create_organization()
		self.parent_organization = create_parent_organization()
		self.organization.save_parent_org(parent_org=self.parent_organization)
		staff = OfficeStaff()
		staff.user = self.user
		staff.office_lat = 0.0
		staff.office_longit = 0.0
		staff.current_practice = self.organization
		staff.save()
		staff.practices.add(self.organization)

		mgr = Office_Manager(user=staff, practice=self.organization, manager_role=2)
		mgr.save()

		self.provider = create_user(get_random_username(), "doc", "holiday", "demo", uklass=Provider)
		self.provider.current_practice = self.parent_organization
		self.provider.save()
		self.provider.practices.add(self.parent_organization)
コード例 #46
0
    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'])
コード例 #47
0
	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'], '')
コード例 #48
0
	def test_addProviderInGroup(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()

		provider1 = Provider(username='******', first_name='tes provider1', 
			last_name="meister", email='*****@*****.**', office_lat=0.0, office_longit=0.0)
		provider1.save()
		data1 = {'to_user': provider1.id}
		msg1 = '''This user is not in your practice now. We have sent an invitation to 
		him/her for confirm to join this call group.
		(He/She will not join your practice by accept this invitation.)'''

		#provider1 not in practice
		response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.addProviderInGroup', 
			args=(self.practice.id, self.group.id)), data=data1)
		self.assertEqual(response.status_code, 200)
		msg = json.loads(response.content)
		self.assertEqual(msg['err'], msg1)

		#add provider2 in practice in this case
		provider2 = Provider(username='******', first_name='tes provider2', 
			last_name="meister", email='*****@*****.**', office_lat=0.0, office_longit=0.0)
		provider2.save()
		provider2.practices.add(self.practice)
		provider2.current_practice = self.practice
		provider2.save()
		data2 = {'to_user': provider2.id}
		msg2 = 'Congratulations! We have added this member to call group. You can:'

		response = self.client.post(reverse('MHLogin.MHLCallGroups.Scheduler.views_multicallgroup.addProviderInGroup', 
			args=(self.practice.id, self.group.id)), data=data2)
		self.assertEqual(response.status_code, 200)
		msg = json.loads(response.content)
		self.assertEqual(msg['err'], msg2)
コード例 #49
0
    def test_removeProvider(self):
        #user is a manager
        staff = OfficeStaff(user=self.user)
        staff.current_practice = self.practice
        staff.save()
        staff.practices.add(self.practice)
        manager = Office_Manager(user=staff,
                                 practice=self.practice,
                                 manager_role=2)
        manager.save()

        #practice has no call group
        response = self.client.post(
            reverse('MHLogin.MHLPractices.views_ajax.removeProvider'))
        self.assertEqual(response.status_code, 200)

        #practice has call group
        self.practice.call_group = self.call_group
        self.practice.save()
        response = self.client.post(
            reverse('MHLogin.MHLPractices.views_ajax.removeProvider'))
        self.assertEqual(response.status_code, 200)
コード例 #50
0
ファイル: test_views.py プロジェクト: DongHuaLu/mdcom
	def setUpClass(cls):
		clean_db_datas()
		cls.user = create_user('practicemgr1', 'lin', 'xing', 'demo')

		org_setting = OrganizationSetting()
		org_setting.save()
		org_type = OrganizationType(name="Test Org Type", 
			organization_setting=org_setting, is_public=True)
		org_type.save()
		cls.org_type = org_type
		sub_types = create_multiple_organization_types(org_type)
		cls.sub_types = sub_types

		practice = PracticeLocation(practice_name='test',
								practice_longit='0.1',
								practice_lat='0.0',
								organization_type = org_type)
		practice.save()
		practice1 = PracticeLocation(practice_name='test1',
								practice_longit='0.1',
								practice_lat='0.0',
								organization_type = org_type)
		practice1.save()

		OrganizationRelationship.objects.create(organization=practice,\
				parent=practice1,create_time=int(time.time()),billing_flag=True)
		cls.practice = practice
		staff = OfficeStaff()
		staff.user = cls.user
		staff.office_lat = 0.0
		staff.office_longit = 0.0
		staff.current_practice = practice
		staff.save()
		staff.practices.add(practice)

		mgr = Office_Manager(user=staff, practice=practice, manager_role=2)
		mgr.save()
コード例 #51
0
ファイル: test_utils.py プロジェクト: cnzhuran/mdcom
    def setUp(self):
        clean_db_datas()

        org_setting = OrganizationSetting()
        org_setting.save()
        org_type = OrganizationType(name="Test Org Type",
                                    organization_setting=org_setting,
                                    is_public=True)
        org_type.save()
        self.org = create_organization()

        user1 = create_user(get_random_username(), 'Test1', 'S', 'demo')
        staff1 = OfficeStaff()
        staff1.user = user1
        staff1.office_lat = 0.0
        staff1.office_longit = 0.0
        staff1.current_practice = self.org
        staff1.save()
        staff1.practices.add(self.org)
        self.manager = Office_Manager(user=staff1,
                                      practice=self.org,
                                      manager_role=1)

        user = create_user(get_random_username(), 'Test1', 'S', 'demo')
        staff = OfficeStaff()
        staff.user = user
        staff.office_lat = 0.0
        staff.office_longit = 0.0
        staff.save()
        self.staff = staff

        self.provider = create_user("Pravider2",
                                    'Provider',
                                    'P',
                                    'demo',
                                    uklass=Provider)
        self.provider.save()
コード例 #52
0
	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)
コード例 #53
0
ファイル: test_views_member.py プロジェクト: DongHuaLu/mdcom
	def setUpClass(cls):
		clean_db_datas()
		cls.user = create_user('practicemgr1', 'lin', 'xing', 'demo')
		cls.user1 = create_user('practicemgr11', 'lin', 'xing', 'demo')

		practice = PracticeLocation(practice_name='test',
								practice_longit='0.1',
								practice_lat='0.0',)
		practice.save()
		practice1 = PracticeLocation(practice_name='test1',
								practice_longit='0.1',
								practice_lat='0.0',)
		practice1.save()
		
		OrganizationRelationship.objects.create(organization=practice,\
				parent=practice1,create_time=int(time.time()),billing_flag=True)
		cls.practice = practice
		cls.practice1 = practice1
		staff = OfficeStaff()
		staff.user = cls.user
		staff.office_lat = 0.0
		staff.office_longit = 0.0
		staff.current_practice = practice
		staff.save()
		staff.practices.add(practice)
		
		usertype = 1
		cls.usertype = usertype
		code = '12345'
		email = '*****@*****.**'
		cls.invite = Invitation(code=code, sender=cls.user1, recipient=email, 
			userType=usertype, assignPractice=cls.practice)
		cls.invite.save()
		
		mgr = Office_Manager(user=staff, practice=practice, manager_role=2)
		mgr.save()
コード例 #54
0
ファイル: views_qa.py プロジェクト: DongHuaLu/mdcom
def generate_users(request):
	if (not settings.DEBUG):
		return HttpResponseRedirect(reverse('MHLogin.Administration.views.home'))
	context = get_context(request)
	if (request.method == 'GET'):
		context["form"] = GenerateUsersForm()
		return render_to_response('qa_tools/genereate_users.html', context)
	else:
		form = GenerateUsersForm(request.POST)
		if form.is_valid():
			current_practice = form.cleaned_data["practices"]
			user_type = int(form.cleaned_data["user_types"])
			number = int(form.cleaned_data["number"])
			user_name_start = form.cleaned_data["user_name_start"]
			generate_user = None
			for i in range(number):
				username = "******" % (user_name_start, i)
				first_name = "%s_f_%d" % (user_name_start, i)
				last_name = "%s_f_%d" % (user_name_start, i)
				email = "*****@*****.**" % (username)
				password = "******"
				if USER_TYPE_DOCTOR == user_type \
					or USER_TYPE_NPPA == user_type \
					or USER_TYPE_MEDICAL_STUDENT == user_type:
					provider = Provider(
						username=username,
						first_name=first_name,
						last_name=last_name,
						email=email,
						email_confirmed=True,
						lat=current_practice.practice_lat,
						longit=current_practice.practice_longit,

						address1=current_practice.practice_address1,
						address2=current_practice.practice_address2,
						city=current_practice.practice_city,
						state=current_practice.practice_state,
						zip=current_practice.practice_zip,

						current_practice=current_practice,
						is_active=1,
						office_lat=current_practice.practice_lat,
						office_longit=current_practice.practice_longit,

						mdcom_phone="8004664411"
					)
					provider.save()
					provider.set_password(password)

					provider.practices.add(current_practice)
					provider.user_id = provider.pk
					provider.save()

					if USER_TYPE_DOCTOR == user_type:
						#Physician
						ph = Physician(user=provider)
						ph.save()
					elif USER_TYPE_NPPA == user_type:
						#NP/PA/Midwife
						np = NP_PA(user=provider)
						np.save()
					elif USER_TYPE_MEDICAL_STUDENT == user_type:
						ph = Physician(user=provider)
						ph.save()

					create_default_keys(provider.user, password)
					# Generating the user's voicemail box configuration
					config = VMBox_Config(pin='')
					config.owner = provider
					config.save()
					generate_user = provider
				elif USER_TYPE_OFFICE_MANAGER == user_type \
					or USER_TYPE_NURSE == user_type \
					or USER_TYPE_DIETICIAN == user_type:
					mhluser = MHLUser(
						username = username,
						first_name = first_name,
						last_name = last_name,
						email = email,
						email_confirmed = True,

						is_active = 1,
						address1 = current_practice.practice_address1,
						address2 = current_practice.practice_address2,
						city = current_practice.practice_city,
						state = current_practice.practice_state,
						zip = current_practice.practice_zip,
						lat = current_practice.practice_lat,
						longit = current_practice.practice_longit
					)
					mhluser.save()
					mhluser.set_password(password)

					staff = OfficeStaff(
								user=mhluser,
								current_practice=current_practice
							)
					staff.user = mhluser
					staff.current_practice = current_practice
					staff.save()

					staff.practices.add(current_practice)
					staff.save()

					if USER_TYPE_OFFICE_MANAGER == user_type:
						manager = Office_Manager(user=staff, practice=current_practice)
						manager.save()
					if USER_TYPE_NURSE == user_type:
						nurse = Nurse(user=staff)
						nurse.save()
					elif USER_TYPE_DIETICIAN == user_type:
						dietician = Dietician(user=staff)
						dietician.save()
					generate_user = mhluser
				log_str = 'Generate user %d: for %s' % (i, str(generate_user))
				logger.debug(log_str)
				print log_str

			return render_to_response('qa_tools/genereate_users_success.html', context)
		else:
			context["form"] = form
			return render_to_response('qa_tools/genereate_users.html', context)
コード例 #55
0
ファイル: test_org.py プロジェクト: cnzhuran/mdcom
	def setUpClass(cls):
		from MHLogin.MHLOrganization.tests.utils import create_multiple_organization_types
		clean_db_datas()
		cls.user = create_user('practicemgr1', 'lin', 'xing', 'demo')
		org_setting = OrganizationSetting(can_have_staff=True, 
			can_have_nurse=True, can_have_dietician=True)
		org_setting.save()

		org_type = OrganizationType(name="Test Org Type - old type", 
				organization_setting=org_setting, is_public=True)
		org_type.save()
		cls.org_type = org_type

		parent_org_type = OrganizationType(name="Test Org Type - parent type", organization_setting=org_setting, is_public=True)
		parent_org_type.save()
		cls.parent_org_type = parent_org_type

		sub_types = create_multiple_organization_types(parent_org_type)
		cls.sub_types = sub_types

		old_parent_practice = PracticeLocation(practice_name='old org parent',
								practice_longit='0.1',
								practice_lat='0.0',
								organization_setting=org_setting,
								organization_type=parent_org_type,)
		old_parent_practice.save()
		OrganizationRelationship.objects.create(organization=old_parent_practice,
			parent=None, create_time=int(time.time()), billing_flag=True)
		cls.old_parent_practice = old_parent_practice

		practice = PracticeLocation(practice_name='test org',
								practice_longit='0.1',
								practice_lat='0.0',
								organization_setting=org_setting,
								organization_type=org_type,)
		practice.save()

		OrganizationRelationship.objects.create(organization=practice,\
			parent=old_parent_practice, create_time=int(time.time()), billing_flag=True)

		new_parent_practice = PracticeLocation(practice_name='new org parent',
								practice_longit='0.1',
								practice_lat='0.0',
								organization_setting=org_setting,
								organization_type=parent_org_type,)
		new_parent_practice.save()
		OrganizationRelationship.objects.create(organization=new_parent_practice,
			parent=None, create_time=int(time.time()), billing_flag=True)

		cls.new_parent_practice = new_parent_practice
		cls.practice = practice

		staff = OfficeStaff()
		staff.user = cls.user
		staff.office_lat = 0.0
		staff.office_longit = 0.0
		staff.current_practice = practice
		staff.save()
		staff.practices.add(practice)
		staff.practices.add(old_parent_practice)
		staff.practices.add(new_parent_practice)
		cls.staff = staff
		Office_Manager.objects.create(user=staff, practice=practice, manager_role=2)

		datadict = {
			'user_type':1,
			'org_id': practice.id,
			'username':get_random_username(),
			'first_name':'yang',
			'last_name':'peng',
			'mobile_phone':9001111111,
			'gender':'M',
			'email':'*****@*****.**',
			'lat':0.0, 
			'longit':0.0, 
			'address1':'address1', 
			'address2':'address2', 
			'city':'Chicago', 
			'state':'IL', 
			'zip':60601,
			'user_type':1,
			'office_lat':41.885805,
			'office_longit':-87.6229106,
		}
		cls.datadict = datadict
コード例 #56
0
	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)
コード例 #57
0
    def test_sendNewProviderEmail(self):
        #user is a manager
        staff = OfficeStaff(user=self.user)
        staff.current_practice = self.practice
        staff.save()
        staff.practices.add(self.practice)

        #office staff call this method
        #get method
        response = self.client.get(
            reverse('MHLogin.MHLPractices.views_ajax.sendNewProviderEmail'))
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(
            msg['err'],
            _('A server error has occurred when you send a email. '
              'Please refresh page again.'))

        #invalid data
        data = {'userType': '33', 'msg': 'abc', 'recipient': '*****@*****.**'}
        response = self.client.post(
            reverse('MHLogin.MHLPractices.views_ajax.sendNewProviderEmail'),
            data=data)
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(
            msg['err']['userType'][0], 'Select a valid choice. 33 is not one '
            'of the available choices.')

        email = '*****@*****.**'
        provider1 = Provider(username='******',
                             first_name='tes',
                             last_name="meister",
                             email=email,
                             office_lat=0.0,
                             office_longit=0.0)
        provider1.save()

        #invalid email
        data = {'userType': 1, 'msg': 'abc', 'recipient': email}
        response = self.client.post(
            reverse('MHLogin.MHLPractices.views_ajax.sendNewProviderEmail'),
            data=data)
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(
            msg['err'],
            _('This email address is already associated with a DoctorCom account.'
              ))

        #valid email and send a mail
        email = '*****@*****.**'
        data = {'userType': 2, 'msg': 'abc', 'recipient': email}
        response = self.client.post(
            reverse('MHLogin.MHLPractices.views_ajax.sendNewProviderEmail'),
            data=data)
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(msg, 'ok')
        self.assertEqual(Invitation.objects.count(), 1)
        self.assertEqual(Invitation.objects.get(recipient=email).userType, 1)

        manager = Office_Manager(user=staff,
                                 practice=self.practice,
                                 manager_role=2)
        manager.save()

        #valid email and send a mail manager login
        email = '*****@*****.**'
        data = {'userType': 2, 'msg': 'abc', 'recipient': email}
        response = self.client.post(
            reverse('MHLogin.MHLPractices.views_ajax.sendNewProviderEmail'),
            data=data)
        self.assertEqual(response.status_code, 200)
        msg = json.loads(response.content)
        self.assertEqual(msg, 'ok')
        self.assertEqual(Invitation.objects.count(), 2)
        self.assertEqual(Invitation.objects.get(recipient=email).userType, 1)