def setUp(self): self.username1 = 'username1' self.username2 = 'username2' self.username3 = 'username3' self.username4 = 'username4' self.username5 = 'username5' self.username6 = 'username6' self.username7 = 'username7' self.username8 = 'username8' self.username9 = 'username9' self.username10 = 'username10' self.username11 = 'username11' self.username12 = 'username12' self.organizer1 = create_organizer(self.username11, 'org1') self.organizer2 = create_organizer(self.username12, 'org2') self.manager1 = create_manager(self.username1, self.organizer1, self.organizer1.org) self.agent11 = create_agent(self.username2, self.manager1) self.agent12 = create_agent(self.username3, self.manager1) self.agent13 = create_agent(self.username4, self.manager1) self.agent14 = create_agent(self.username8, self.manager1) self.manager2 = create_manager(self.username5, self.organizer1, self.organizer1.org) self.agent21 = create_agent(self.username6, self.manager2) self.agent22 = create_agent(self.username7, self.manager2) self.ntf1 = create_notification(self.agent11, NTD['SOS'], [self.manager1]) self.ntf2 = create_notification(self.agent12, NTD['Unreachable'], [self.manager1]) self.ntf3 = create_notification(self.agent13, NTD['Deadline crossed'], [self.agent13, self.manager1]) self.ntf4 = create_notification(None, NTD['New Task'], [self.agent13]) self.ntf5 = create_notification(self.agent14, NTD['Task started'], [self.manager1]) self.ntf6 = create_notification(self.agent11, NTD['SOS'], [self.manager1]) self.ntf7 = create_notification(self.agent12, NTD['Unreachable'], [self.manager1]) self.ntf8 = create_notification(self.agent13, NTD['Deadline crossed'], [self.agent13, self.manager1]) self.ntf9 = create_notification(None, NTD['New Task'], [self.agent13]) self.ntf10 = create_notification(self.agent14, NTD['Task started'], [self.manager1]) self.ntf11 = create_notification(self.agent11, NTD['SOS'], [self.manager1]) self.ntf12 = create_notification(self.agent12, NTD['Unreachable'], [self.manager1]) self.ntf13 = create_notification(self.agent13, NTD['Deadline crossed'], [self.agent13, self.manager1]) self.ntf14 = create_notification(None, NTD['New Task'], [self.agent13]) self.ntf15 = create_notification(self.agent14, NTD['Task started'], [self.manager1])
def setUp(self): self.username1 = 'username1' self.username2 = 'username2' self.username3 = 'username3' self.username4 = 'username4' self.username5 = 'username5' self.username6 = 'username6' self.username7 = 'username7' self.username8 = 'username8' self.username9 = 'username9' self.username10 = 'username10' self.username11 = 'username11' self.username12 = 'username12' self.organizer1 = create_organizer(self.username11, 'org1') self.organizer2 = create_organizer(self.username12, 'org2') self.manager1 = create_manager(self.username1, self.organizer1, self.organizer1.org) self.agent11 = create_agent(self.username2, self.manager1) self.agent12 = create_agent(self.username3, self.manager1) self.agent13 = create_agent(self.username4, self.manager1) self.agent14 = create_agent(self.username8, self.manager1) self.manager2 = create_manager(self.username5, self.organizer1, self.organizer1.org) self.agent21 = create_agent(self.username6, self.manager2) self.agent22 = create_agent(self.username7, self.manager2)
def test_get_account_fail_org(self): manager1 = create_manager(self.username1, self.organizer1, self.organizer1.org) manager2 = create_manager(self.username1, self.organizer2, self.organizer2.org) agent = create_agent(self.username3, manager2) client.force_authenticate(manager1) response = client.get( user_prefix + USER_ULRS['account_id'].replace('<int:pk>', str(agent.id)), format='json', ) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_get_resource_list_success(self): manager1 = create_manager(self.username1, self.organizer1, self.organizer1.org) agent11 = create_agent(self.username2, manager1) agent12 = create_agent(self.username3, manager1) task1 = create_task('Task_test1', manager1, [agent11, agent12], status=TSTATE['In progress']) client.force_authenticate(manager1) response = client.get( user_prefix + USER_ULRS['resource_list'], {'status': 'working'}, format='json', ) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 2) client.force_authenticate(None) client.force_authenticate(self.organizer1) response = client.get( user_prefix + USER_ULRS['resource_list'], {'status': 'working'}, format='json', ) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 0)
def test_get_profile_success(self): manager = create_manager(self.username1, self.organizer1, self.organizer1.org) AppInfo.objects.create(current_version=10, app_name='manager') AppInfo.objects.create(current_version=11, app_name='agent') client.force_authenticate(manager) response = client.get( user_prefix + USER_ULRS['profile_id'].replace('<int:pk>', str(manager.id)), format='json', ) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data['current_version'], 10) # print(json.dumps(response.data)) agent = create_agent(self.username2, manager) client.force_authenticate(None) client.force_authenticate(agent) response = client.get( user_prefix + USER_ULRS['profile_id'].replace('<int:pk>', str(agent.id)), format='json', ) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data['current_version'], 11)
def test_search_account_in_list_success(self): manager = create_manager(self.username1, self.organizer1, self.organizer1.org) agent1 = create_agent(self.username3, manager) agent2 = create_agent(self.username4, manager) agent3 = create_agent('halios', manager) client.force_authenticate(self.organizer1) response = client.get( user_prefix + USER_ULRS['accounts_paginated'], {'token': ''}, format='json', ) # print(response.data) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data['results']), 4) client.force_authenticate(self.organizer1) response = client.get( user_prefix + USER_ULRS['accounts_paginated'], {'token': 'username'}, format='json', ) # print(response.data) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data['results']), 3)
def test_change_manger_success(self): manager = create_manager(self.username1, self.organizer1, self.organizer1.org) manager2 = create_manager(self.username5, self.organizer1, self.organizer1.org) agent = create_agent(self.username2, manager) client.force_authenticate(self.organizer1) response = client.patch( user_prefix + USER_ULRS['account_id'].replace('<int:pk>', str(agent.id)), { 'username': self.username2, 'full_name': 'agent1', 'parent': manager2.id, 'role': ROLE_DICT['Employee'], }, format='json', ) # print(response.data) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_get_account_success(self): manager = create_manager(self.username1, self.organizer1, self.organizer1.org) agent = create_agent(self.username2, manager) client.force_authenticate(manager) response = client.get( user_prefix + USER_ULRS['account_id'].replace('<int:pk>', str(agent.id)), format='json', ) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_fb_token_update_success(self): manager = create_manager(self.username1, self.organizer1, self.organizer1.org) token = uuid.uuid4() client.force_authenticate(manager) response = client.post( user_prefix + USER_ULRS['update_fb_token'], { 'fb_token': token, }, format='json', ) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_set_password_success(self): manager = create_manager(self.username1, self.organizer1, self.organizer1.org) password = '******' client.force_authenticate(manager) response = client.post( user_prefix + USER_ULRS['set_password'], { 'password': password, }, format='json', ) # print('Password set response: ' + str(response.data)) self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_delete_account_success(self): manager = create_manager(self.username1, self.organizer1, self.organizer1.org) agent = create_agent(self.username3, manager) client.force_authenticate(self.organizer1) response = client.delete( user_prefix + USER_ULRS['account_id'].replace('<int:pk>', str(agent.id)), {}, format='json', ) # print(response.data) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual( User.objects.filter(phone=self.username3).exists(), False)
def test_search_account_light_success(self): manager = create_manager(self.username1, self.organizer1, self.organizer1.org) agent1 = create_agent(self.username3, manager) agent2 = create_agent(self.username4, manager) agent3 = create_agent('halios', manager) client.force_authenticate(self.organizer1) response = client.get( user_prefix + USER_ULRS['search_user'].replace('<str:token>', 'user'), {}, format='json', ) # print(response.data) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 3)
def test_change_password_fail(self): manager1 = create_manager(self.username1, self.organizer1, self.organizer1.org) password = '******' manager1.set_password(password) client.force_authenticate(manager1) response = client.post( user_prefix + USER_ULRS['change_password'], { 'old_password': password, 'new_password': '******', }, format='json', ) # print(response.data) self.assertEqual(response.status_code, 400)
def test_login_success(self): manager1 = create_manager(self.username1, self.organizer1, self.organizer1.org) password = '******' manager1.set_password(password) manager1.save() response = client.post( user_prefix + USER_ULRS['login_password'], { 'oid': manager1.org.oid, 'username': self.username1, 'password': password, }, format='json', ) # print(response.data) self.assertEqual(response.status_code, 200) oid_upper = manager1.org.oid.upper() # print(oid_upper) response = client.post( user_prefix + USER_ULRS['login_password'], { 'oid': oid_upper, 'username': self.username1, 'password': password, }, format='json', ) # print(response.data) self.assertEqual(response.status_code, 200) response = client.post( user_prefix + USER_ULRS['login_password'], { 'oid': manager1.org.oid, 'username': self.username1, 'password': '******', }, format='json', ) # print(response.data) self.assertEqual(response.status_code, 401)
def test_create_account_fail_username(self): manager = create_manager(self.username1, self.organizer1, self.organizer1.org) agent = create_agent(self.username2, manager) client.force_authenticate(self.organizer1) response = client.post( user_prefix + USER_ULRS['account'], { 'username': self.username2, 'full_name': 'agent1', 'designation': 'AGM', 'parent': manager.id, 'role': ROLE_DICT['Employee'], 'org': manager.org.id, }, format='json', ) # print(response.data) self.assertEqual(response.status_code, 406)
def test_change_password_success(self): manager1 = create_manager(self.username1, self.organizer1, self.organizer1.org) password = '******' manager1.set_password(password) manager1.save() client.force_authenticate(manager1) response = client.post( user_prefix + USER_ULRS['change_password'], { 'old_password': password, 'new_password': '******', }, format='json', ) # print(response.data) self.assertEqual(response.status_code, status.HTTP_200_OK) manager1.refresh_from_db() self.assertEqual(manager1.check_password('new_password'), True)
def test_data_usage_upload_success(self): manager = create_manager(self.username1, self.organizer1, self.organizer1.org) agent1 = create_agent(self.username3, manager) agent2 = create_agent(self.username4, manager) mb_list1 = [0.5, 1.5, 0.5, 1.5, 2.0] # total1 = .5 + 1 + .5 + 1 + .5 = 3.5 mb_list2 = [7.5, 8.5, 0.5, 1.5, 2.0] # total2 = 7.5 + 1 + .5 + 1 + .5 = 10.5 for mb in mb_list1: upload_data(self, mb, agent1, '00:0a:95:9d:68:16') for mb in mb_list2: upload_data(self, mb, agent1, '00:0a:95:9d:68:17') for mb in mb_list1: upload_data(self, mb, agent2, '00:0a:95:9d:68:18') client.force_authenticate(None) client.force_authenticate(manager) response = client.get( user_prefix + USER_ULRS['data_usage'], {}, format='json', ) # print(response.data) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 2) response = client.get( user_prefix + USER_ULRS['data_usage_id'].replace( '<int:agent_id>', str(agent1.id)), {}, format='json', ) # print(response.data) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data['megabytes'], 14.0)
def test_edit_account_fail_username_with_spaces(self): manager = create_manager(self.username1, self.organizer1, self.organizer1.org) agent = create_agent(self.username3, manager) agent2 = create_agent(self.username4, manager) client.force_authenticate(self.organizer1) response = client.patch( user_prefix + USER_ULRS['account_id'].replace('<int:pk>', str(agent.id)), { 'username': '******', 'full_name': 'agent1', 'parent': manager.id, 'role': ROLE_DICT['Employee'], 'org': manager.org.id, }, format='json', ) # print(response.data) self.assertEqual(response.status_code, 400)
def test_edit_profile_success(self): manager1 = create_manager(self.username1, self.organizer1, self.organizer1.org) client.force_authenticate(user=manager1) response = client.patch( user_prefix + USER_ULRS['profile_id'].replace('<int:pk>', str(manager1.id)), { 'full_name': 'Manager1', 'phone': '+8801788000000', 'email': '*****@*****.**', 'designation': 'AGM Dhaka Zone', }, format='json', ) # print(response.data) self.assertEqual(response.status_code, status.HTTP_200_OK) response = client.patch( user_prefix + USER_ULRS['profile_id'].replace('<int:pk>', str(manager1.id)), { 'full_name': 'Manager1', 'username': self.username10, 'phone': '+8801788000000', 'email': '*****@*****.**', 'designation': 'AGM Dhaka Zone', }, format='json', ) # print(response.data) self.assertEqual(response.status_code, status.HTTP_200_OK) manager1.refresh_from_db() self.assertEqual(manager1.username, create_username(manager1.org.oid, self.username10))
def setUp(self): self.username1 = 'username1' self.username2 = 'username2' self.username3 = 'username3' self.username4 = 'username4' self.username5 = 'username5' self.username6 = 'username6' self.username7 = 'username7' self.username8 = 'username8' self.username9 = 'username9' self.username10 = 'username10' self.username11 = 'username11' self.username12 = 'username12' self.organizer1 = create_organizer(self.username11, 'org1') self.organizer2 = create_organizer(self.username12, 'org2') self.manager1 = create_manager(self.username1, self.organizer1, self.organizer1.org) self.agent11 = create_agent(self.username2, self.manager1, is_present=False) self.agent12 = create_agent(self.username3, self.manager1, is_present=False) self.agent13 = create_agent(self.username4, self.manager1, is_present=False) self.agent14 = create_agent(self.username8, self.manager1, is_present=False) self.manager2 = create_manager(self.username5, self.organizer1, self.organizer1.org) self.agent21 = create_agent(self.username6, self.manager2, is_present=False) self.agent22 = create_agent(self.username7, self.manager2, is_present=False) self.agent23 = create_agent(self.username9, self.manager2, is_present=False) date_str = '2019-03-06' # Feb 2019: 26/tue, 27/wed, 28/thu. Mar 2019: 1/fri, 2/sat, 3/sun, 4/mon, 5/tue, 6/wed date = timezone.datetime.strptime(date_str, '%Y-%m-%d') date = utc.localize(date) date += timezone.timedelta(hours=9) self.date = date # Creating attendance current day................................. date_6_3_19 = date create_attendance(self.agent11, task_hour_p=49.0, date=date_6_3_19) create_attendance(self.agent12, work_hour=timezone.timedelta(hours=6), date=date_6_3_19) create_attendance(self.agent13, date=date_6_3_19) create_attendance(self.agent21, late_arrival=True, date=date_6_3_19) create_attendance(self.agent22, work_hour=timezone.timedelta(hours=6), date=date_6_3_19) # This week/month for agent11.......................... date_5_3_19 = date - timezone.timedelta(days=1) create_attendance(self.agent11, date=date_5_3_19) create_attendance(self.agent12, work_hour=timezone.timedelta(hours=6), date=date_5_3_19) create_attendance(self.agent13, date=date_5_3_19) create_attendance(self.agent14, date=date_5_3_19) date_4_3_19 = date - timezone.timedelta(days=2) create_attendance(self.agent11, late_arrival=True, date=date_4_3_19) create_attendance(self.agent12, date=date_4_3_19) create_attendance(self.agent14, date=date_4_3_19) date_3_3_19 = date - timezone.timedelta(days=3) create_attendance(self.agent11, task_hour_p=49.0, date=date_3_3_19) create_attendance(self.agent12, task_hour_p=49.0, date=date_3_3_19) create_attendance(self.agent13, date=date_3_3_19) # last week/month for agent11........... date_28_2_19 = date - timezone.timedelta(days=6) create_attendance(self.agent11, task_hour_p=49.0, date=date_28_2_19) create_attendance(self.agent12, work_hour=timezone.timedelta(hours=6), date=date_28_2_19) create_attendance(self.agent14, date=date_28_2_19) date_27_2_19 = date - timezone.timedelta(days=7) create_attendance(self.agent11, work_hour=timezone.timedelta(hours=6), date=date_27_2_19) create_attendance(self.agent12, task_hour_p=49.0, date=date_27_2_19) create_attendance(self.agent13, date=date_27_2_19) date_26_2_19 = date - timezone.timedelta(days=8) create_attendance(self.agent11, task_hour_p=49.0, date=date_26_2_19) create_attendance(self.agent12, date=date_26_2_19) create_attendance(self.agent13, work_hour=timezone.timedelta(hours=6), date=date_26_2_19) create_attendance(self.agent14, date=date_26_2_19) # Creating tasks this week/month................................. create_task_rpt(self.manager1, [self.agent11], deadline=date - timezone.timedelta(days=1), status=TSD['Complete']) create_task_rpt(self.manager1, [self.agent11], deadline=date - timezone.timedelta(days=1), status=TSD['Cancelled']) create_task_rpt(self.manager1, [self.agent13], deadline=date - timezone.timedelta(days=2), status=TSD['Remaining'], delayed=True) create_task_rpt(self.manager1, [self.agent12], deadline=date - timezone.timedelta(days=2), status=TSD['Postponed']) create_task_rpt(self.manager1, [self.agent13], deadline=date - timezone.timedelta(days=3), status=TSD['Remaining'], delayed=True) create_task_rpt(self.manager1, [self.agent12], deadline=date - timezone.timedelta(days=3), status=TSD['Complete'], delayed=True) # last week/month........... create_task_rpt(self.manager1, [self.agent11], deadline=date - timezone.timedelta(days=6), status=TSD['Complete']) create_task_rpt(self.manager1, [self.agent11], deadline=date - timezone.timedelta(days=6), status=TSD['Cancelled']) create_task_rpt(self.manager1, [self.agent13], deadline=date - timezone.timedelta(days=7), status=TSD['Remaining'], delayed=True) create_task_rpt(self.manager1, [self.agent12], deadline=date - timezone.timedelta(days=7), status=TSD['Postponed']) create_task_rpt(self.manager1, [self.agent13], deadline=date - timezone.timedelta(days=8), status=TSD['Remaining'], delayed=True) create_task_rpt(self.manager1, [self.agent12], deadline=date - timezone.timedelta(days=8), status=TSD['Complete'], delayed=True)
def test_get_account_list(self): manager1 = create_manager(self.username1, None, self.organizer1.org) manager11 = create_manager(self.username2, manager1, self.organizer1.org) agent11 = create_agent(self.username3, manager1) manager111 = create_manager(self.username7, manager11, self.organizer1.org) agent111 = create_agent(self.username8, manager11) agent112 = create_agent(self.username9, manager11) manager2 = create_manager(self.username4, self.organizer1, self.organizer1.org) manager21 = create_manager(self.username5, manager2, self.organizer1.org) agent22 = create_agent(self.username6, manager2) manager3 = create_manager(self.username20, None, self.organizer1.org) client.force_authenticate(manager1) response = client.get( user_prefix + USER_ULRS['account'], {}, format='json', ) self.assertEqual(response.status_code, 200) self.assertEqual(len(response.data), 6) response = client.get( user_prefix + USER_ULRS['account'], {'role': ROLE_DICT['Manager']}, format='json', ) self.assertEqual(response.status_code, 200) self.assertEqual(len(response.data), 3) client.force_authenticate(None) client.force_authenticate(self.organizer1) response = client.get( user_prefix + USER_ULRS['account'], {'role': ROLE_DICT['Manager']}, format='json', ) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 6) response = client.get( user_prefix + USER_ULRS['account'], {'manager_id': manager11.id}, format='json', ) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data), 3) response = client.get( user_prefix + USER_ULRS['account'], {'manager_id': self.organizer1.id}, format='json', ) self.assertEqual(response.status_code, status.HTTP_200_OK) # print(response.data) self.assertEqual(len(response.data), 2)
def test_get_dashboard_success(self): '''Team1 details''' manager1 = create_manager(self.username1, self.organizer1, self.organizer1.org) agent1 = create_agent(self.username2, manager1) agent2 = create_agent(self.username3, manager1) agent3 = create_agent(self.username4, manager1) agent4 = create_agent(self.username5, manager1) task1 = create_task('Retailer 1', manager1, [agent1, agent2], status=TSTATE['In progress']) task2 = create_task('Doctor Visit', manager1, [agent2]) task3 = create_task('Survey 1', manager1, [agent3]) task3.delayed = True task3.save() task4 = create_task('Survey 2', manager1, [agent4], status=TSTATE['Cancelled']) '''Team2 details''' manager2 = create_manager(self.username6, self.organizer1, self.organizer1.org) agent5 = create_agent(self.username7, manager2) task5 = create_task('Demand Collection', manager2, [agent5], status=TSTATE['In progress']) task5 = create_task('Delivery', manager2, [agent5], status=TSTATE['Cancelled']) client.force_authenticate(manager1) response = client.get( user_prefix + USER_ULRS['search_api_manager'].replace('<str:token>', 'survey'), {}, format='json', ) # print(response.data) self.assertEqual(response.status_code, status.HTTP_200_OK) client.force_authenticate(user=None) client.force_authenticate(manager2) response = client.get( user_prefix + USER_ULRS['manager_dashboard'], {}, format='json', ) # print(response.data) self.assertEqual(response.status_code, status.HTTP_200_OK) client.force_authenticate(user=None) client.force_authenticate(agent2) response = client.get( user_prefix + USER_ULRS['agent_dashboard'], {}, format='json', ) # print(response.data) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(len(response.data['current_task']), 1) self.assertEqual(response.data['current_task'][0]['title'], 'Retailer 1')