def test_no_admin_add_bonus(self): self.client.credentials(HTTP_AUTHORIZATION=authentication(self.admin)) self.client.post(reverse('create_remain_leave'), data={"year": self.year}) self.client.credentials(HTTP_AUTHORIZATION=authentication(self.user)) response = self.client.post(reverse('add_bonus'), data={"profile_id": self.user_profile.id, "bonus": self.bonus}) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_action_approved_request_with_one_line_manager(self): self.client.credentials(HTTP_AUTHORIZATION=authentication(self.user4)) data_request = { "reason": faker.word(), "type_id": self.type_off.id, "date": [{"date": "2026-08-30", "type": "All day", "lunch": "False"}] } response = self.client.post(self.url_request, data=data_request) response_data = json.loads(response.content) self.client.credentials(HTTP_AUTHORIZATION=authentication(self.user1)) data = { 'request_off_id': response_data['id'], 'action': Workday.STATUS_APPROVED } response_action = self.client.post(self.url_action, data=data) response_action_data = json.loads(response_action.content) self.assertEqual(response_action_data['request_off']['status'], Workday.STATUS_APPROVED) self.assertEqual(response_action_data['status'], Workday.STATUS_APPROVED) self.assertEqual(response_action.status_code, status.HTTP_201_CREATED)
def test_get_retrieve_date_statistic(self): self.client.credentials(HTTP_AUTHORIZATION=authentication(self.admin)) self.client.post(reverse('create_remain_leave'), data={"year": self.year}) self.client.credentials(HTTP_AUTHORIZATION=authentication(self.user)) response = self.client.get(reverse('retrieve_date_statistic')) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(json.loads(response.content)['profile']['id'], str(self.user_profile.id))
def setUp(self): self.uuid_cus = uuid.uuid1(random.randint(0, 2 ** 48 - 1)) self.admin = UserFactory() self.profile = ProfileFactory(user=self.admin) self.user1 = UserFactory() self.user1_profile = ProfileFactory.create(user=self.user1) self.user2 = UserFactory() self.user2_profile = ProfileFactory.create(user=self.user2, line_manager=self.user1_profile) self.client.credentials(HTTP_AUTHORIZATION=authentication(self.user2)) self.company = CompanyFactory() self.request_off = RequestOffFactory(profile=self.profile) self.lenRequestOff = RequestOff.objects.count() self.type_off = TypeOffFactory() self.valid_data = { "reason": 'Hello', "type_id": self.type_off.id, "date": [{"date": "2026-09-30", "type": "All day", "lunch": "False"}, {"date": "2025-09-30", "type": "Morning", "lunch": "True"}] } self.url_request = '/api/v1/workday/request/create'
def setUp(self): self.user1 = UserFactory() self.user1_profile = ProfileFactory.create(user=self.user1) self.user2 = UserFactory(staff=False) self.user2_profile = ProfileFactory.create(user=self.user2, line_manager=self.user1_profile) self.user3 = UserFactory(staff=False) self.user3_profile = ProfileFactory.create(user=self.user3, line_manager=self.user2_profile) self.user4 = UserFactory(staff=False) self.user4_profile = ProfileFactory.create(user=self.user4, line_manager=self.user1_profile) self.company = CompanyFactory() self.type_off = TypeOffFactory() self.type_off_insurance = TypeOffFactory(type=1) self.request = Request.data(self.type_off.id) self.request_too_time = Request.data_too_time(self.type_off.id) self.client.credentials(HTTP_AUTHORIZATION=authentication(self.user3)) self.url_request = '/api/v1/workday/request/create' self.url_action = '/api/v1/workday/action' self.url_get_request = '/api/v1/workday/request/management' response_request = self.client.post(self.url_request, data=self.request) self.response_request_data = json.loads(response_request.content) response_request_too_time = self.client.post(self.url_request, self.request_too_time) self.data_request_too_time = json.loads(response_request_too_time.content) self.request_of_user_4 = RequestOffFactory(profile=self.user4_profile) self.request_detail = RequestDetailFactory(request_off=self.request_of_user_4, approve=self.user1_profile)
def test_first_user_action_rejected_request_with_two_line_manager(self): self.client.credentials(HTTP_AUTHORIZATION=authentication(self.user2)) response_action = self.client.post(self.url_action, data=ActionRequest.reject(self.response_request_data['id'])) response_action_data = json.loads(response_action.content) self.assertEqual(response_action_data['request_off']['status'], Workday.STATUS_REJECTED) self.assertEqual(response_action_data['status'], Workday.STATUS_REJECTED) self.assertEqual(response_action.status_code, status.HTTP_201_CREATED) self.client.credentials(HTTP_AUTHORIZATION=authentication(self.user1)) response_action = self.client.post(self.url_action, data=ActionRequest.reject(self.response_request_data['id'])) self.assertEqual(response_action.status_code, status.HTTP_400_BAD_REQUEST) response_action = self.client.post(self.url_action, data=ActionRequest.approve(self.response_request_data['id'])) self.assertEqual(response_action.status_code, status.HTTP_400_BAD_REQUEST)
def setUp(self): self.uuid_cus = uuid.uuid1(random.randint(0, 2**48 - 1)) self.admin = UserFactory() self.profile = ProfileFactory(user=self.admin) self.client.credentials(HTTP_AUTHORIZATION=authentication(self.admin)) self.type_off = TypeOffFactory() self.lenTypeOff = TypeOff.objects.count() self.valid_data = {"title": faker.text(), "descriptions": faker.text()}
def test_add_bonus(self): self.client.credentials(HTTP_AUTHORIZATION=authentication(self.admin)) self.client.post(reverse('create_remain_leave'), data={"year": self.year}) present_bonus = RemainLeave.objects.get(year=self.year, profile_id=self.user_profile.id).bonus response = self.client.post(reverse('add_bonus'), data={"user_id": self.user.id, "bonus": self.bonus}) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(json.loads(response.content)['profile']['id'], str(self.user_profile.id)) self.assertEqual(json.loads(response.content)["bonus"], float(present_bonus) + self.bonus)
def test_action_request_with_user_no_line_manger(self): self.client.credentials(HTTP_AUTHORIZATION=authentication(self.user4)) response_action = self.client.post(self.url_action, data=ActionRequest.approve(self.response_request_data['id'])) self.assertEqual(response_action.status_code, status.HTTP_400_BAD_REQUEST) response_action = self.client.post(self.url_action, ActionRequest.reject(self.response_request_data['id'])) self.assertEqual(response_action.status_code, status.HTTP_400_BAD_REQUEST) response_action = self.client.post(self.url_action, ActionRequest.cancel(self.response_request_data['id'])) self.assertEqual(response_action.status_code, status.HTTP_400_BAD_REQUEST)
def setUp(self): self.admin = UserFactory() self.admin_profile = ProfileFactory.create(user=self.admin, join_date="2017-06-20") self.user = UserFactory(staff=False) self.user_profile = ProfileFactory.create(user=self.user, join_date="2015-02-15") self.user2 = UserFactory(staff=False) self.user_profile2 = ProfileFactory.create(user=self.user2, join_date="2020-05-10") self.client.credentials(HTTP_AUTHORIZATION=authentication(self.admin)) self.bonus = 1.0 self.year = '2020' self.annual_leave_user1 = 17 self.annual_leave_user2 = 8
def test_add_bonus_with_invalid_input(self): self.client.credentials(HTTP_AUTHORIZATION=authentication(self.admin)) self.client.post(reverse('create_remain_leave'), data={"year": self.year}) response = self.client.post(reverse('add_bonus'), data={"profile_id": "profile_id", "bonus": "bonus"}) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
def test_non_auth_get_retrieve_date_statistic(self): self.client.credentials(HTTP_AUTHORIZATION=authentication(self.admin)) self.client.post(reverse('create_remain_leave'), data={"year": self.year}) self.client.credentials() response = self.client.get(reverse('retrieve_date_statistic')) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
def test_non_admin_create_remain_leave(self): self.client.credentials(HTTP_AUTHORIZATION=authentication(self.user)) response = self.client.post(reverse('create_remain_leave')) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual(len(RemainLeave.objects.filter(year=self.year)), 0)
def test_actions_cancel_request_too_time_with_admin(self): self.client.credentials(HTTP_AUTHORIZATION=authentication(self.user1)) response_action = self.client.post(self.url_action, ActionRequest.cancel(self.data_request_too_time['id'])) response_action_data = json.loads(response_action.content) self.assertEqual(response_action_data['status'], Workday.STATUS_CANCEL) self.assertEqual(response_action.status_code, status.HTTP_201_CREATED)