def test_method_update(self): hour_payment = HourPayment( project_id=self.project.id, rate=500 ) hour_payment_create = self.hour_payment_repo.create(hour_payment) hour_payment_update_1 = HourPayment( id=hour_payment_create.id, rate=1000 ) hour_payment_update = self.hour_payment_repo.update(hour_payment_update_1) self.assertEqual(hour_payment_update.id, hour_payment_create.id) self.assertEqual(hour_payment_update.rate, 1000)
def test_method_get_worked_times_boundary(self): hour_payment = HourPayment( project_id=self.project.id, rate=500 ) hour_payment_create = self.hour_payment_repo.create(hour_payment) work_time_repo = WorkTimeRepo() for i in range(10): work_time = WorkTime( hour_payment_id=hour_payment_create.id, start_work=datetime.datetime.now() - timedelta(days=10-i, hours=1), end_work=datetime.datetime.now() - timedelta(days=10-i), paid=i % 2 == 0 ) work_time_repo.create(work_time) boundary = (datetime.datetime.now() - timedelta(days=5, hours=6), datetime.datetime.now()-timedelta(hours=6)) work_times = self.hour_payment_repo._get_worked_times(hour_payment_create.id) self.assertEqual(type(work_times), list) self.assertEqual(len(work_times), 5) work_times = self.hour_payment_repo._get_worked_times(hour_payment_create.id, boundary=boundary) self.assertEqual(type(work_times), list) self.assertEqual(len(work_times), 3) boundary = (datetime.datetime.now() - timedelta(days=5, hours=6), datetime.datetime.now() - timedelta(hours=6, days=1)) work_times = self.hour_payment_repo._get_worked_times(hour_payment_create.id, boundary=boundary) self.assertEqual(type(work_times), list) self.assertEqual(len(work_times), 2) work_times = self.hour_payment_repo._get_worked_times(hour_payment_create.id, boundary=boundary, paid=True) self.assertEqual(type(work_times), list) self.assertEqual(len(work_times), 2)
def test_method_get_worked_times_paid(self): hour_payment = HourPayment( project_id=self.project.id, rate=500 ) hour_payment_create = self.hour_payment_repo.create(hour_payment) work_time_repo = WorkTimeRepo() for i in range(10): work_time = WorkTime( hour_payment_id=hour_payment_create.id, start_work=datetime.datetime.now() - timedelta(hours=1), end_work=datetime.datetime.now(), paid=i % 2 == 0 ) work_time_repo.create(work_time) work_times = self.hour_payment_repo._get_worked_times(hour_payment_create.id, paid=False) self.assertEqual(type(work_times), list) self.assertEqual(len(work_times), 5) for work_time in work_times: self.assertEqual(work_time.paid, False) work_times = self.hour_payment_repo._get_worked_times(hour_payment_create.id, paid=True) self.assertEqual(type(work_times), list) self.assertEqual(len(work_times), 5) for work_time in work_times: self.assertEqual(work_time.paid, True)
def _decode_db_hour_payment(self, db_hour_payment): fileds = { 'id': db_hour_payment.id, 'project_id': db_hour_payment.project.id, 'rate': db_hour_payment.rate } return HourPayment(**fileds)
def test_method_create(self): hour_payment = HourPayment( project_id=self.project.id, rate=500 ) hour_payment_create = self.hour_payment_repo.create(hour_payment) db_hour_payment = HourPaymentORM.objects.get(id=hour_payment_create.id) self.assertEqual(hour_payment_create.id, db_hour_payment.id) self.assertEqual(hour_payment_create.rate, db_hour_payment.rate) self.assertEqual(hour_payment_create.project_id, db_hour_payment.project.id)
def test_method_get(self): hour_payment = HourPayment( project_id=self.project.id, rate=500 ) hour_payment_create = self.hour_payment_repo.create(hour_payment) hour_payment_get = self.hour_payment_repo.get(hour_payment_create.id) self.assertEqual(hour_payment_get.id, hour_payment_create.id) self.assertEqual(hour_payment_get.rate, hour_payment_create.rate) self.assertEqual(hour_payment_get.project_id, hour_payment_create.project_id)
def test_project_total_hour_payment(self): hour_payments = [] for i in range(5): hour_payment = HourPayment(id=i, project_id=1, rate=200, work_times=self.work_times) hour_payments.append(hour_payment) project = Project(title="Test Project", description="Testing project", type_of_payment='H_P', entity_type_list=hour_payments) self.assertEqual(project.total, 90000)
def test_method_get_all(self): COUNT_HOUR_PAYMENT = 10 for i in range(COUNT_HOUR_PAYMENT): hour_payment = HourPayment( project_id=self.project.id, rate=500 ) self.hour_payment_repo.create(hour_payment) hour_payments = self.hour_payment_repo.get_all(project_id=self.project.id) self.assertEqual(type(hour_payments), list) self.assertEqual(len(hour_payments), COUNT_HOUR_PAYMENT) for hour_payment in hour_payments: self.assertEqual(hour_payment.rate, 500), self.assertEqual(hour_payment.project_id, self.project.id)
def delete(self): hour_payment = HourPayment( project_id=self.project.id, rate=500 ) hour_payment_create = self.hour_payment_repo.create(hour_payment) self.assertIsNotNone(self.hour_payment_repo.get(hour_payment_id=hour_payment_create.id)) self.assertIsNotNone(HourPaymentORM.objects.get(id=hour_payment_create.id)) hour_payment_delete = self.hour_payment_repo.delete(hour_payment_create.id) with self.assertRaises(EntityDoesNotExistException): self.hour_payment_repo.get(hour_payment_create.id) with self.assertRaises(HourPaymentORM.DoesNotExist): HourPaymentORM.objects.get(id=hour_payment_create.id) self.assertIsNotNone(hour_payment_delete)
def test_method___get_entity_type_list_hour_of_payment(self): COUNT_HOUR_PAYMENT = 5 COUNT_WORK_TIME = 10 project = Project( title='Test Project', description='My Test project', type_of_payment='' 'H_P', start_date=datetime.datetime.now(), user_id=self.user.id ) project_create = self.project_repo.create(project) hour_payment_repo = HourPaymentRepo() for i in range(COUNT_HOUR_PAYMENT): hour_payment = HourPayment( project_id=project_create.id, rate=500 ) hour_payment_create = hour_payment_repo.create(hour_payment) for j in range(COUNT_WORK_TIME): work_time = WorkTime( hour_payment_id=hour_payment_create.id, start_work=datetime.datetime.now() - timedelta(days=10 - i, hours=1), end_work=datetime.datetime.now() - timedelta(days=10 - i), paid=False ) WorkTimeRepo().create(work_time) hour_payments = self.project_repo._get_entity_type_list(project_create.id) self.assertEqual(type(hour_payments), list) self.assertEqual(len(hour_payments), COUNT_HOUR_PAYMENT) self.assertEqual(type(hour_payments.pop()), HourPayment) self.assertEqual(type(hour_payments.pop()._work_times), list) self.assertEqual(len(hour_payments.pop()._work_times), COUNT_WORK_TIME) self.assertEqual(type(hour_payments.pop()._work_times.pop()), WorkTime)
def create(**kwargs): return HourPayment(**kwargs)
def test_total_hour_paymnet(self): hour_payment = HourPayment(id=1, project_id=1, rate=200, work_times=self.work_times) self.assertEqual(hour_payment.total, 45000)