Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)
Beispiel #4
0
    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)
Beispiel #5
0
    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)
Beispiel #6
0
    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)
Beispiel #7
0
    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)
Beispiel #8
0
    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)
Beispiel #9
0
    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)
Beispiel #10
0
    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)
Beispiel #11
0
 def create(**kwargs):
     return HourPayment(**kwargs)
Beispiel #12
0
 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)