Beispiel #1
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 #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 setUp(self):
        self.worked_days = []
        self.work_times = []
        for i in range(10):
            worked_day = WorkedDay(month_payment_id=i,
                                   day=datetime.now().date() -
                                   timedelta(days=10 - i),
                                   paid=False)
            self.worked_days.append(worked_day)
        for i in range(10):
            work_time = WorkTime(
                id=i,
                hour_payment_id=1,
                start_work=datetime.now().replace(
                    hour=10, minute=0, second=0) - timedelta(days=10 - i),
                end_work=datetime.now().replace(hour=19, minute=0, second=0) -
                timedelta(days=10 - i),
                paid=False)
            self.work_times.append(work_time)

        self.tasks = []
        for i in range(10):
            task = WorkTask(
                id=i,
                project_id=1,
                price=(i + 1) * 100,
            )
            self.tasks.append(task)
Beispiel #4
0
    def _decode_db_work_time(self, db_work_time):
        fileds = {
            'id': db_work_time.id,
            'hour_payment_id': db_work_time.hour_payment.id,
            'start_work': db_work_time.start_work,
            'end_work': db_work_time.end_work,
            'paid': db_work_time.paid
        }

        return WorkTime(**fileds)
Beispiel #5
0
    def test_method_update(self):
        work_time = WorkTime(
            hour_payment_id=self.hour_payment.id,
            start_work=datetime.datetime.now() - timedelta(hours=1),
            end_work=datetime.datetime.now(),
            paid=False
        )

        work_time_crate = self.work_time_repo.create(work_time)

        work_time_update_1 = WorkTime(
            id=work_time_crate.id,
            start_work=datetime.datetime.now() - timedelta(hours=3),
            end_work=work_time_crate.end_work,
            paid=True
        )
        work_time_update = self.work_time_repo.update(work_time_update_1)

        self.assertEqual(work_time_update.hour_payment_id, work_time_crate.hour_payment_id)
        self.assertEqual(work_time_update.paid, True)
        self.assertEqual(work_time_update.id, work_time_crate.id)
Beispiel #6
0
    def setUp(self):
        self.work_times = []

        for i in range(25):
            work_time = WorkTime(
                id=i,
                hour_payment_id=1,
                start_work=datetime.now().replace(
                    hour=10, minute=0, second=0) - timedelta(days=10 - i),
                end_work=datetime.now().replace(hour=19, minute=00, second=0) -
                timedelta(days=10 - i),
                paid=False)
            self.work_times.append(work_time)
Beispiel #7
0
    def test_method_create(self):
        work_time = WorkTime(
            hour_payment_id=self.hour_payment.id,
            start_work=datetime.datetime.now() - timedelta(hours=1),
            end_work=datetime.datetime.now(),
            paid=False
        )

        work_time_crate = self.work_time_repo.create(work_time)
        db_work_time = WorkTimeORM.objects.get(id=work_time_crate.id)

        self.assertEqual(work_time_crate.id, db_work_time.id)
        self.assertEqual(work_time_crate.hour_payment_id, db_work_time.hour_payment.id)
        self.assertEqual(work_time_crate.paid, db_work_time.paid)
Beispiel #8
0
    def test_method_get(self):
        work_time = WorkTime(
            hour_payment_id=self.hour_payment.id,
            start_work=datetime.datetime.now() - timedelta(hours=1),
            end_work=datetime.datetime.now(),
            paid=False
        )

        work_time_crate = self.work_time_repo.create(work_time)
        work_time_get = self.work_time_repo.get(work_time_crate.id)
        with self.assertRaises(EntityDoesNotExistException):
            self.work_time_repo.get(work_time_crate.id + 23423423423)

        self.assertEqual(work_time_get.id, work_time_crate.id)
        self.assertEqual(work_time_get.hour_payment_id, work_time_crate.hour_payment_id)
        self.assertEqual(work_time_get.paid, work_time_crate.paid)
Beispiel #9
0
    def test_method_get_all(self):
        COUNT_WORK_TIME = 10
        for i in range(COUNT_WORK_TIME):
            work_time = WorkTime(
                hour_payment_id=self.hour_payment.id,
                start_work=datetime.datetime.now() - timedelta(hours=1),
                end_work=datetime.datetime.now(),
                paid=False
            )

            self.work_time_repo.create(work_time)

        work_times = self.work_time_repo.get_all(hour_payment_id=self.hour_payment.id)
        self.assertEqual(type(work_times), list)
        self.assertEqual(len(work_times), COUNT_WORK_TIME)
        for i in work_times:
            self.assertEqual(i.hour_payment_id, self.hour_payment.id)
            self.assertEqual(i.paid, False)
Beispiel #10
0
    def test_method_delete(self):
        work_time = WorkTime(
            hour_payment_id=self.hour_payment.id,
            start_work=datetime.datetime.now() - timedelta(hours=1),
            end_work=datetime.datetime.now(),
            paid=False
        )

        work_time_crate = self.work_time_repo.create(work_time)

        self.assertIsNotNone(self.work_time_repo.get(work_time_crate.id))
        self.assertIsNotNone(WorkTimeORM.objects.get(id=work_time_crate.id))

        work_time_delete = self.work_time_repo.delete(work_time_crate.id)

        with self.assertRaises(EntityDoesNotExistException):
            self.work_time_repo.get(work_time_crate.id)

        with self.assertRaises(WorkTimeORM.DoesNotExist):
            WorkTimeORM.objects.get(id=work_time_crate.id)
Beispiel #11
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 #12
0
 def create(**kwargs):
     return WorkTime(**kwargs)